我有一個ComboBox,綁定到一個DataTable。我想添加一個額外的ComboBoxItem到列表的頂部,我可以放置一個鏈接來自定義列表。目前我只是在我的DataTable頂部插入一個虛擬行,然後在ComboBox上使用DataTrigger使其正確顯示。但是,我沒有得到正確的結果。問題樣式數據綁定WPF ComboBoxItem
我試過兩種方法。首先,我的DataTrigger用包含TextBlock的ControlTemplate替換虛擬項。
<ComboBox IsEditable="True" Name="comboWell" ItemsSource="{Binding}" DisplayMemberPath="wellId">
<ComboBox.ItemContainerStyle>
<Style TargetType="{x:Type ComboBoxItem}">
<Style.Triggers>
<DataTrigger Binding="{Binding wellId}" Value="(settings)">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ComboBoxItem">
<TextBlock Text="Customize..." />
</ControlTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</ComboBox.ItemContainerStyle>
</ComboBox>
結果看起來不錯,但該項目上沒有鼠標懸停突出顯示。列表的其餘部分工作正常,但是當我將鼠標懸停在其上時,其中一項完全沒有反應。我嘗試添加額外的觸發器和樣式來應用鼠標懸停效果,但我沒有任何更改。
我試過的第二種方法只是改變項目的外觀,而不是完全用ControlTemplate替換它。
<ComboBox IsEditable="True" Name="comboWell" ItemsSource="{Binding}" DisplayMemberPath="wellId">
<ComboBox.ItemContainerStyle>
<Style TargetType="{x:Type ComboBoxItem}">
<Style.Triggers>
<DataTrigger Binding="{Binding wellId}" Value="(settings)">
<Setter Property="Content" Value="Customize..." />
</DataTrigger>
</Style.Triggers>
</Style>
</ComboBox.ItemContainerStyle>
</ComboBox>
這一個函數就像一個常規列表項,鼠標懸停工作正常。但是,該項目是空白的。原始文本和我試圖在DataTrigger中設置的文本都沒有。沒有錯誤,只是一個空的列表項。
有沒有更好的方法來實現這個目標?
這個伎倆!非常感謝你! – Nairou