我有IValueConverter
我已经添加了依赖属性,因为我需要viewmodel来设置属性。
public class ParameterValueToString: ContentControl, IValueConverter
{
public object Convert(object value
, Type targetType
, object parameter
, CultureInfo culture)
{
return Converter.ToString(value); //Throws NullReferenceException
}
public object ConvertBack(object value
, Type targetType
, object parameter
, CultureInfo culture)
{
/* convert back */
}
internal const string ConvertPropertyName = "Converter";
public static readonly DependencyProperty ConverterProperty
= DependencyProperty.RegisterAttached(ConvertPropertyName
, typeof(IParameterConverter)
, typeof(ParameterValueToString));
public IParameterConverter Converter
{
get { return (IParameterConverter) GetValue(ConverterProperty); }
set { SetValue(ConverterProperty, value); }
}
}
该属性是执行从ParameterValue
到string
的转换的对象。我试图重用代码。
VM的属性为IParameterConverter
,名为ParameterConverter
。
WPF我设置了:
<Namespace:ParameterValueToString x:Key="pvts" Converter="{Binding ParameterConverter}"/>
但是当我尝试使用Converter
属性时,我得到NullReferenceException
。
转换器的最终用途是将ParameterValue
列表转换为字符串(并将该字符串转换回列表)。这是为了方便用户输入值:作为换行符分隔列表。
如何让转换器使用IParameterConverter
?