我正在为可以是两种颜色之一的自定义控件制作样式。
我的控件属性是:{ 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;
}