当 DatagridCheckboxColumn 正确绑定时,自定义数据网格模板列复选框未绑定到对象?
Custom data grid template column check box isn't binding to object when DatagridCheckboxColumn is correctly binding?
我有一个要在 WPF 中创建的自定义列。
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.Header>
<CheckBox x:Name="checkAll" Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked"></CheckBox>
</DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellTemplate >
<DataTemplate>
<CheckBox IsChecked="{Binding IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="#" Binding="{Binding userFriendlyId}" IsReadOnly="True"/>
<DataGridTextColumn Header="Log Number" Binding="{Binding logNumber}" />
</DataGrid.Columns>
两个 DataGridTextColumns
都正确绑定到我的对象的属性,如果我将我的自定义列换成 DataGridCheckboxColumn
,它会正确绑定。我正在尝试使用此列,因为我想检查数据网格的 all/uncheck 所有选项。此外,与使用 DataGridCheckboxColumn
相比,只需单击一下即可触发这些复选框。
我使用这段代码来分配数据网格的 ItemSource:
DataGrid.ItemsSource = samples;
DataGrid.Items.Refresh();
我目前也有 this.DataContext = this;
,尽管这似乎没有任何区别。
编辑:网格中显示的数据模型:
public class Sample
{
public bool isSelected { get; set; }
public int userFriendlyId { get; set; }
public string logNumber { get; set; }
}
将绑定设置为 IsChecked="{Binding isSelected}"
绑定中的 属性 名称区分大小写,因此如果您的对象模型使用 isSelected
,那么您的绑定也应该如此。
我有一个要在 WPF 中创建的自定义列。
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.Header>
<CheckBox x:Name="checkAll" Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked"></CheckBox>
</DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellTemplate >
<DataTemplate>
<CheckBox IsChecked="{Binding IsSelected, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="#" Binding="{Binding userFriendlyId}" IsReadOnly="True"/>
<DataGridTextColumn Header="Log Number" Binding="{Binding logNumber}" />
</DataGrid.Columns>
两个 DataGridTextColumns
都正确绑定到我的对象的属性,如果我将我的自定义列换成 DataGridCheckboxColumn
,它会正确绑定。我正在尝试使用此列,因为我想检查数据网格的 all/uncheck 所有选项。此外,与使用 DataGridCheckboxColumn
相比,只需单击一下即可触发这些复选框。
我使用这段代码来分配数据网格的 ItemSource:
DataGrid.ItemsSource = samples;
DataGrid.Items.Refresh();
我目前也有 this.DataContext = this;
,尽管这似乎没有任何区别。
编辑:网格中显示的数据模型:
public class Sample
{
public bool isSelected { get; set; }
public int userFriendlyId { get; set; }
public string logNumber { get; set; }
}
将绑定设置为 IsChecked="{Binding isSelected}"
绑定中的 属性 名称区分大小写,因此如果您的对象模型使用 isSelected
,那么您的绑定也应该如此。