2 つの色のいずれかになるカスタム コントロールのスタイルを作成しています。
私のコントロールのプロパティは次のとおりです。{SolidColorBrush color1、SolidColorBrush color2、bool usingColor1}。
usingColor1 にバインドし、color1 または color2 を返すコンバーターを作成しようとしています。コンバーターを次のように定義したいと思います。
<Style.Resources>
<Converters:ValueParameterComparisonConverter x:Key="Color1WhenTrue" ValueWhenEqual="{DataTemplateKey Color1}" ValueWhenNotEqual="{DataTemplateKey Color2}"/>
</Style.Resources>
そして、私のコンバーターを次のように使用します。
<Border Background="{TemplateBinding UsingColor1, Converter={StaticResource Color1WhenTrue}}" />
これをコードに実装しましたが、機能しません。DataTemplateKey が何をするのか理解できず、このシナリオの正しい言葉だとは思いません。
テンプレートからプロパティを返すようにコンバーターを設定するにはどうすればよいですか?
編集:
コンバーター コードの興味深い部分は次のとおりです。
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
bool isEqual;
if (value == null)
{
isEqual = null == parameter;
}
else
{
isEqual = value.Equals(parameter);
}
return isEqual ? this.ValueWhenEqual : this.ValueWhenNotEqual;
}