1

在我的 WPF 应用程序中,我从后面的代码动态创建 Datagrid。但是,我希望在行标题上有一个类似于的带有复选框的数据网格。

我知道如何从 XML 中做到这一点,但不知道如何从 cs 代码中做到这一点。有什么想法如何处理这种情况?附言。我的代码很大,我不能放在这里,但是如果您需要更多信息,请在下面发表评论。干杯

4

1 回答 1

2

像这样的东西怎么样:

var dg = new DataGrid();

var dataTemplate = new DataTemplate();

var gridFactory = new FrameworkElementFactory(typeof(Grid));
var checkboxFactory = new FrameworkElementFactory(typeof(CheckBox));
checkboxFactory.SetBinding(CheckBox.IsCheckedProperty, new Binding("IsSelected") { RelativeSource = new RelativeSource(RelativeSourceMode.FindAncestor,typeof(DataGridRow),1)});
gridFactory.AppendChild(checkboxFactory);

dataTemplate.VisualTree = gridFactory;
dg.RowHeaderTemplate = dataTemplate;

希望这应该能够毫不费力地放入您的代码中,可能只需将DataGrid名称从“dg”更改。

于 2013-02-01T12:20:11.690 回答