ETA:我正在使用Caliburn.Micro,因此Grid的x:Name属性绑定到名为MyData的VM上的属性,而该属性又具有属性IsTrue。 MyData继承自PropertyChangeBase
我有一个DataGrid,其中一列绑定到ViewModel上的bool属性:
<DataGrid x:Name="MyData"
AutoGenerateColumns="False"
Width="282"
RowHeaderWidth="0"
CanUserAddRows="false">
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="MyChckColumn"
Binding="{Binding IsTrue, Mode=TwoWay}"
Width="80"/>
</DataGrid.Columns>
</DataGrid>
当网格上的其他内容被选中时,它只会进入设置器,但是当我实际检查一个空的框时,它不会进入设置器。
public bool IsTrue
{
get
{
return _isTrue;
}
set
{
if (value.Equals(_isTrue)) return;
_isTrue= value;
NotifyOfPropertyChange(() => IsTrue);
}
}
我需要调用一些验证方法,还是需要设置的触发器?
答案 0 :(得分:1)
要获得您所追求的行为,您必须将绑定的UpdateSourceTrigger
属性设置为PropertyChanged
。
默认情况下,当单元格失去焦点时,会更新绑定源。
Binding="{Binding IsTrue, UpdateSourceTrigger=PropertyChanged}"