【发布时间】:2018-04-27 02:15:47
【问题描述】:
我有一个实现IMultiValueConverter 的对象。它用于根据特定 bool 值和特定枚举值的特定排列绑定列的可见性,这两者都是绑定数据的一部分。 ConvertBack 方法本身显然没有任何意义。
在常规 IValueConverter 上,我可以返回 Binding.DoNothing,但这不是 object[],因此不会编译。
我目前抛出了一个异常,但感觉并不理想。有没有更好的办法?
【问题讨论】:
-
试试这个:public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfoculture) { return new object[] {value}; }
-
你也可以试试这个: public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfoculture) { return new[] { value, Binding.DoNothing}; } ..........OR................. public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfoculture) { return新[] {Binding.DoNothing}; }
-
为什么要使用
IMultiValueConverter来控制列的可见性?它被认为是用于转换的。当然,调用它的时间可能是控制可见性的理想选择,但这并不能使它成为您正在做的事情的正确选择。尽管很多人这样误用它,然后面对你所面临的问题。 -
请参阅this。
-
@GaurangDave 的建议不起作用,因为如果您返回一个对象数组,它的长度必须与 MultiBinding 中的绑定数量相匹配。
标签: c# wpf imultivalueconverter