2
我試圖讓IsSelectionActive
與WPF DataGrid的工作:如何獲取WPF DataGrid的IsSelectionActive?
<Style TargetType="{x:Type DataGridCell}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type DataGridCell}">
<ContentPresenter />
<ControlTemplate.Triggers>
<MultiTrigger>
<MultiTrigger.Conditions>
<Condition Property="IsSelectionActive" Value="False" />
<Condition Property="IsSelected" Value="True" />
<!--<Condition Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGridRow}}, Path=IsSelected}" Value="True" />
<Condition Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type DataGrid}}, Path=IsKeyboardFocusWithin}" Value="True" />-->
</MultiTrigger.Conditions>
基本上,當焦點失去了電網,但選擇仍然存在,我想申請一些造型。
不幸的是,IsSelectionActive
由於某種原因拋出了它不存在於WPF數據網格中的錯誤。
這就是它!你能解釋爲什麼我們需要使用這個'Selector.',而我們不需要它的幾個屬性? – Tower
@rFactor:該樣式是針對具有依賴項屬性IsSelected的DataGridCell。沒有IsSelectionActive屬性。 Selector類(來自ItemsControl,ListBox的基類,DataGrid等,支持選擇的任何東西)具有隻讀屬性IsSelectionActive(以及附屬屬性IsSelected等)。因此,您需要指定Selector.IsSelectionActive,就像您使用Grid.Row =「1」,它是由網格定義的附加屬性,而不是網格中項目的屬性。 – Phil