【发布时间】:2016-09-27 17:00:16
【问题描述】:
我一直在尝试对 WPF DataGrid 进行一次编辑单击,并且我查看了很多关于 stackoverflow 的解决方案,但还有一个尚未解决的额外用例。我需要设置一个样式触发器,但我需要它不只是将 IsEditing 一直设置为 true。我需要它基于第二个条件。我遇到的问题是每个单元格只能工作一次。
这是几乎可以工作的 XAML。
<Style TargetType="DataGridCell" BasedOn="{StaticResource {x:Type DataGridCell}}">
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding RelativeSource={RelativeSource Self}, Path=IsSelected}" Value="True" />
<Condition Binding="{Binding RelativeSource={RelativeSource AncestorType=DataGrid}, Path=DataContext.IsEditing}" Value="True" />
</MultiDataTrigger.Conditions>
<Setter Property="IsEditing" Value="true" />
</MultiDataTrigger>
</Style.Triggers>
</Style>
这样做的问题是每个单元格只能工作一次。现在,如果我将第一个条件更改为基于 IsFocused 它始终有效。问题是由于明显的原因,我无法单击单元格内的文本框。我真的不知道为什么 IsSelected 每个单元格只能工作一次。顺便说一句,如果我将视图退出编辑模式并使用也在视图上的按钮将其放回原处,它将再次工作......每个单元格一次。
有没有人知道为什么会发生这种奇怪的行为?
【问题讨论】:
标签: c# wpf xaml wpfdatagrid