在经过两次单独的转换后,我需要显示一个整数值,该整数值绑定(bind)到我的数据上下文中的属性:
我意识到我可以通过创建自己的转换器(实现IValueConverter)来完成这两个步骤。但是,我已经有一个单独的值转换器,它仅执行第一步,而第二步由Int32Converter覆盖。
有没有一种方法可以在XAML中链接这两个现有类,而不必创建进一步的类来聚合它们?
如果我需要澄清其中任何一个,请告诉我。 :)
谢谢。
最佳答案
我在Silverlight项目中使用了Gareth Evans的this method。
这是我的实现:
public class ValueConverterGroup : List<IValueConverter>, IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return this.Aggregate(value, (current, converter) => converter.Convert(current, targetType, parameter, culture));
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}
然后可以在XAML中像这样使用它:
<c:ValueConverterGroup x:Key="InvertAndVisibilitate">
<c:BooleanInverterConverter/>
<c:BooleanToVisibilityConverter/>
</c:ValueConverterGroup>
关于wpf - 有没有办法在XAML中链接多个值转换器?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2607490/