【发布时间】:2016-06-17 11:17:01
【问题描述】:
我的项目中有一个 xaml 网格,我在其中使用复选框,我们的要求已更改,现在我们正在以编程方式构建数据网格,如何在 csharp 中使用 xaml。以下是我在 xaml 中有复选框列的示例
<DataGridTemplateColumn>
<DataGridTemplateColumn.Header>
<CheckBox x:Name="chkHeader" />
</DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding IsChecked,
ElementName=chkHeader, Mode=OneWay,
UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
我在这里以编程方式创建一个网格
foreach (var field in dc.AllColumns)
{
var binding = new Binding(".") { Converter = new
IndexingDataFieldsConverter(field) };
AudioPlayBackGrid.Columns.Add(new DataGridTextColumn { Header =
field.Field.Description, Binding = binding});
}
我在这里以编程方式注入复选框,到目前为止我已经在 xaml 中完成了
Binding columnbinding = new Binding("IsChecked");
columnbinding.Mode = BindingMode.OneWay;
columnbinding.RelativeSource = new RelativeSource
(RelativeSourceMode.FindAncestor);
columnbinding.RelativeSource.AncestorType = datagrid.GetType();
CheckBox chkHeader = new CheckBox();
chkHeader.Content = "ALL";
chkHeader.SetBinding(CheckBox.IsCheckedProperty, columnbinding);
DataGridCheckBoxColumn checkBoxColumn = new
DataGridCheckBoxColumn();
checkBoxColumn.Header = chkHeader;
checkBoxColumn.Binding = columnbinding;
AudioPlayBackGrid.Columns.Add(checkBoxColumn);
不知何故,我不能在 csharp 中做我在 xaml 网格中所做的任何帮助将不胜感激
【问题讨论】: