将转换器值设置为空
问题描述:
我有一个用转换器参数绑定的通用函数。我并不需要一个转换器我想在空通过,但它不会让我这样说的:将转换器值设置为空
Cannot set MultiBinding because MultiValueConverter must be specified.
之前在功能分配给它我检查,如果转换为空,但我想这个问题是IMultiValueConverter
不接受null作为值。
有没有办法实现这一点,而不创建一个只返回输入的转换器,或者一个重载的方法?
protected MultiBinding CreateBinding(object source, IMultiValueConverter converter, object parameter, object [] dps)
{
MultiBinding multiBinding = new MultiBinding();
if (converter != null)
multiBinding.Converter = converter;
multiBinding.ConverterParameter = parameter;
.....
换句话说,我希望模拟一个直接财产无需转换器结合,用上面的功能。
答
如果您指定MultiValueConverter或StringFormat以定义如何根据每个源计算输出,则MultiBindings仅有意义。
我不确定你想达到什么,但是如果你指定一个空的StringFormat(string.Empty),你应该没有错误,但它在运行时不会做任何事情。
我不想每次输入四行来设置绑定,它占用太多的空间。我想要一个通用函数,可以创建一个给定四个参数的绑定。它可以是单个绑定或带参数的多重绑定。我不确定你在说什么时指的是StringFormat,你的意思是把它作为convE的值。 – mihajlv
然后当你只有一个源时使用绑定,当你有多个时使用绑定。 – alf
那么我将不得不有一个重载的方法或两个单独的方法,因为该函数将不得不有一个或多个绑定返回类型。 – mihajlv