我有一个下面的DataGrid在我的XAML。
<DataGrid
ItemsSource="{Binding SomeClassInstance.SomeList, Mode=TwoWay}">
<DataGrid.Columns>
<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox
IsChecked="{Binding ShouldInclude, Mode="TwoWay"}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
其中SomeList
是类型为ObservableCollection<SomeClass>
的字段,其中SomeClass
的字段ShouldInclude
是bool。
我希望在SomeList
的每个成员和DataGrid的复选框之间建立双向数据绑定,以便当我选中/取消选中DataGrid中的CheckBox时,列表的相应类示例将其ShouldInclude
字段设置为true/false。
字段SomeList
看起来像这样:
private ObservableCollection<SomeClass> _someList;
public ObservableCollection<SomeClass> SomeList
{
get
{
return _someList;
}
set
{
if (value != _someList)
{
_someList = value;
OnPropertyChanged(nameof(SomeList));
}
}
}
类SomeClass
有一个字段ShouldInclude
,如下所示。
private bool _shouldInclude;
public bool ShouldInclude
{
get
{
return _shouldInclude;
}
set
{
if (value != _shouldInclude)
{
_shouldInclude = value;
OnPropertyChanged(nameof(ShouldInclude));
}
}
}
我在ShouldInclude
的setter中添加了一个Debug.WriteLine
,它只能被SomeClass
的构造函数访问。
对我来说,这表明类本身设置正确,但XAML数据绑定中的某些内容没有正确实现。我只是不知道该怎么弥补
1条答案
按热度按时间llew8vvj1#
将绑定的
UpdateSourceTrigger
属性设置为PropertyChanged
,以在选中或取消选中CheckBox
时触发setter: