在我的 WPF 应用程序中,我从后面的代码动态创建 Datagrid。但是,我希望在行标题上有一个类似于此的带有复选框的数据网格。
我知道如何从 XML 中做到这一点,但不知道如何从 cs 代码中做到这一点。有什么想法如何处理这种情况?附言。我的代码很大,我不能放在这里,但是如果您需要更多信息,请在下面发表评论。干杯
像这样的东西怎么样:
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”更改。