是否可以仅在DataGridTemplateColumn.CellEditingTemplate中触发事件
当我选中并取消选中复选框时,以下代码不会触发..
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<CheckBox IsThreeState="True" Unchecked="Event" Checked="Event" IsChecked="{Binding Property, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" HorizontalAlignment="Center"></CheckBox>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
但是,它将使用DataGridTemplateColumn.CellTemplate
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsThreeState="True" Unchecked="Event" Checked="Event" IsChecked="{Binding Property, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" HorizontalAlignment="Center"></CheckBox>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
但这会导致事件在视图加载时触发,从而导致后端出现问题。我只希望事件在编辑模式下触发,这可能吗?
谢谢
答案 0 :(得分:1)
而不是Checked&amp;未经检查的事件,您可以使用CheckBox的单击事件,然后从事件处理程序
获取检查状态<DataGridTemplateColumn>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding TestBool}" Click="CheckBox_Click" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
代码
private void CheckBox_Click(object sender, RoutedEventArgs e)
{
var result = (sender as CheckBox).IsChecked;
}