【发布时间】:2015-03-24 08:59:02
【问题描述】:
我需要在转换器类中定义一个 DependencyProperty,因为我需要这些数据来进行转换,而且这些数据在另一个对象中,而不是我要绑定的对象。
我的转换器类如下:
public class LEGOMaterialConverter : DependencyObject, IValueConverter
{
public DependencyProperty MaterialsListProperty = DependencyProperty.Register("MaterialsList", typeof(Dictionary<int, LEGOMaterial>), typeof(LEGOMaterialConverter));
public Dictionary<int, LEGOMaterial> MaterialsList
{
get
{
return (Dictionary<int, LEGOMaterial>)GetValue(MaterialsListProperty);
}
set
{
SetValue(MaterialsListProperty, value);
}
}
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
LEGOMaterial material = null;
MaterialsList.TryGetValue((int)value, out material);
return material;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
然后我在 Window.REsources 区域实例化它:
<Window.Resources>
<local:LEGOMaterialConverter x:Key="MaterialsConverter" MaterialsList="{Binding Path=Materials}" />
</Window.Resources>
我收到以下错误:
'MaterialsList' property was already registered by 'LEGOMaterialConverter'.
有人知道这个错误吗?
【问题讨论】:
-
您是否尝试过使用多重绑定和 MultiValueConverter?见stackoverflow.com/questions/15309008/binding-converterparameter。
标签: wpf dependency-properties ivalueconverter