WPFでHighlightBrushKey
のaSelectedItem
の設定に問題があります。Listbox
私の意図は、コード内にある特定のブール値に応じてアイテムの色を設定することでした。
次の手順を試しました。
コンバーターを実装し、ブール値をチェックして、正しい色を返します。
例:
<ribbon:RibbonWindow.Resources> <l:WindowControl x:Key="ListBoxItemBackgroundConverter" /> <Style x:Key="listBoxStyle" TargetType="{x:Type ListBoxItem}"> <Style.Resources> <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="{Binding Source={x:Static SystemColors.HighlightBrushKey}, Converter={StaticResource ListBoxItemBackgroundConverter}}"/> <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="{Binding Source={x:Static SystemColors.ControlBrushKey}, Converter={StaticResource ListBoxItemBackgroundConverter}}"/> </Style.Resources> </Style> </ribbon:RibbonWindow.Resources>
ここでの問題は、Convertメソッドが1回だけ呼び出されたということでしたが、アイテムを選択してブール値をチェックするたびにConverterを呼び出す必要があります。トリガーのようですが、「
HighlightBrushKey
」が付いています。コンバータ:
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) { if(currentField == null) return Brushes.Yellow; if (currentField.Save) return Brushes.LightGreen; else return Brushes.Yellow; }
次のアイデアは、「
HighlightBrushKey
」を「」に設定し、コードを手動でTransparent
変更することでした。item.Background
ここでの問題は、私のアイテムが白くなり、背景色が見えなくなったことです。例:
<ListBox.Resources> <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent" /> <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black" /> <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent" /> </ListBox.Resources>
前もって感謝します!:)