C# Datagrid无需双击来编辑列
我在一个简单的窗口中使用WPF数据网格来显示模型提供的一些数据C# Datagrid无需双击来编辑列,c#,wpf,wpfdatagrid,C#,Wpf,Wpfdatagrid,我在一个简单的窗口中使用WPF数据网格来显示模型提供的一些数据 模型中的一切都很好,但是有一个问题,例如,我必须双击列来编辑复选框的值 我提出了这个解决方案: 在我将样式指定给复选框之后——以及第一个文本列,它实际上起了作用:) 过了一会儿,我意识到,当样式“NoDoubleClick”被指定给一个列时,模型不再得到更新 谁能告诉我我做错了什么吗?DataGridColumns通常只在编辑的单元格失去焦点时更新绑定的数据。要解决此问题并使其符合您的风格,请将绑定的UpdateSource
模型中的一切都很好,但是有一个问题,例如,我必须双击列来编辑复选框的值
我提出了这个解决方案:
在我将样式指定给复选框之后——以及第一个文本列,它实际上起了作用:)
过了一会儿,我意识到,当样式“NoDoubleClick”被指定给一个列时,模型不再得到更新
谁能告诉我我做错了什么吗?DataGridColumns通常只在编辑的单元格失去焦点时更新绑定的数据。要解决此问题并使其符合您的风格,请将绑定的
UpdateSourceTrigger
设置为PropertyChanged
Manfred Radlwimmer是正确的
UpdateSourceTrigger=PropertyChanged
需要更新模型
<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, UpdateSourceTrigger=PropertyChanged}" Header="Name"></DataGridTextColumn>
<DataGridTextColumn IsReadOnly="True" Binding="{Binding Path=IsActive, Mode=TwoWay, Converter={StaticResource boolToActive}}" Header="Active"></DataGridTextColumn>
</DataGrid.Columns>
将绑定的UpdateSourceRigger设置为PropertyChanged。它成功了,非常感谢@不客气,我会把它作为一个答案,这样你就可以结束这个问题了。谢谢你的确认,但我们真的不需要同样的答案了,是吗?(特别是因为OP已经证实它有效)为什么不呢?在代码中显示是很好的。或者你可以用代码编辑你的帖子。代码总是很容易看到的。就这些。