Dönüştürücü sınıfında bir DependencyProperty tanımlamam gerekir çünkü bu verileri dönüştürmek için bu veriye ihtiyacım var ve bu veri başka bir nesnede, bağlandığım nesne değil.Bir IValueConverter sınıfında Özellik Tanımlama
Benim dönüştürücü sınıftır aşağıdadır: Sonra
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();
}
}
Ben Window.REsources alan üzerine instanciating ediyorum:
<Window.Resources>
<local:LEGOMaterialConverter x:Key="MaterialsConverter" MaterialsList="{Binding Path=Materials}" />
</Window.Resources>
aşağıdaki hatayı alıyorum:
'MaterialsList' property was already registered by 'LEGOMaterialConverter'.
Bu hata hakkında bir ipucu olan var mı?
Çoklu ciltleme ve MultiValueConverter kullanmayı denediniz mi? Http://stackoverflow.com/questions/15309008/binding-converterparameter adresine bakın. –