我有一个 MVVM 应用程序正在运行并尝试在数据网格中绑定一个复选框,但 Propertychanged 事件只是没有触发。我已经在视图模型和基类上实现了 INotifypropertychanged,但该属性仍然没有触发并且复选框没有更新。我已经尝试了所有可能的方法,例如设置 updatesourcetrigger=explicit 或 propertychanged,但它确实不起作用。我可能做错了什么?我没有办法弄清楚。网格的数据上下文设置为绑定到 ObservableCollection 的 ListViewCollection。
<DataGridCheckBoxColumn Header="Tier1" Binding="{Binding Tier1Check,Mode=TwoWay}"></DataGridCheckBoxColumn>
<DataGridCheckBoxColumn Header="Tier2" Binding="{Binding Tier2Check,Mode=TwoWay}"></DataGridCheckBoxColumn>
<DataGridCheckBoxColumn Header="Tier3" Binding="{Binding Tier3Check,Mode=TwoWay}"></DataGridCheckBoxColumn>
<DataGridCheckBoxColumn Header="DoNotUse" Binding="{Binding DoNotUseCheck,Mode=TwoWay}"></DataGridCheckBoxColumn>
<!--<DataGridCheckBoxColumn Header="Tier1" Binding="{Binding IsChecked}" />
<DataGridCheckBoxColumn Header="Tier2" Binding="{Binding IsChecked}" />
<DataGridCheckBoxColumn Header="Tier3" Binding="{Binding IsChecked}"/>-->
</DataGrid.Columns>
</DataGrid>
ViewModel...我有四个复选框,代码专门用于使它们互斥。
public bool? Tier1Check
{
get
{
return Tier1Check;
}
set
{
Tier1Check = value;
Tier2Check = false;
Tier3Check = false;
DoNotUseCheck = false;
RaisePropertyChanged("Tier2Check");
RaisePropertyChanged("Tier3Check");
RaisePropertyChanged("Tier1Check");
RaisePropertyChanged("DoNotUseCheck");
}
}