【发布时间】:2012-11-08 02:02:15
【问题描述】:
我在 DataGrid 中有一个数据绑定 CheckBox,使用 WPF 和 MVVM;
<DataGridTemplateColumn Width="80" Header="Enabled">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding Path=IsEnabled, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Name="theCheckbox" HorizontalAlignment="Center"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
这可以正常工作,并且在设置 IsEnabled 时正在检查 CheckBox。 IsEnabled 是我绑定到DataGrid 的对象集合中的一个属性。我想要做的是能够验证当用户选择它时是否应该允许检查DataGrid 中的特定行CheckBox,如果不删除他们的检查并显示类似“第 1 行”的警告消息如果不检查第 5 行和第 9 行,则无法检查”。我发现了如何使用CheckBox 的Checked 和Unchecked 属性背后的代码来执行此操作,但是我使用的是MVVM,因此想要处理与查看DataGrid 关联的ViewModel 中的事情和CheckBox 在里面。我该怎么做?我也需要一种传递 DataRow 的 Id 字段的方法,以便确定我正在处理哪一行,为了论证,假设 Id 字段称为BorderId。
【问题讨论】: