我正在一个简单的窗口中使用 WPF DataGrid 来展示由一个数据模型提供的一些数据。
<DataGrid x:Name="unitTable" ItemsSource="{Binding Units}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridCheckBoxColumn Binding="{Binding Path=IsChosen, Mode=TwoWay}" Header="Chosen"></DataGridCheckBoxColumn>
<DataGridTextColumn Binding="{Binding Path=Name, Mode=TwoWay}" Header="Name"></DataGridTextColumn>
<DataGridTextColumn IsReadOnly="True" Binding="{Binding Path=IsActive, Mode=TwoWay, Converter={StaticResource boolToActive}}" Header="Active"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
这个模型一切正常,但有一个问题是例如复选框的值需要双击列才能编辑。
我想到了这个解决方案:
<Style TargetType="DataGridCell" x:Key="NoDoubleClick">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="IsEditing" Value="True" />
</Trigger>
</Style.Triggers>
</Style>
在我将样式分配给复选框和第一个文本列后,它实际上可以工作 :)
过了一会儿,我意识到,当将“NoDoubleClick”样式分配给某一列时,模型不再更新。
有人可以告诉我错在哪里吗?