我遇到了一种情况,在进行两次单独的转换后,我需要显示绑定(bind)到数据上下文上的属性的整数值:
- 反转某个范围内的值(例如,范围是 1 到 100;数据上下文中的值是 90;用户看到的值是 10)
- 将数字转换为字符串
我意识到我可以通过创建自己的转换器(实现 IValueConverter)来完成这两个步骤。但是,我已经有了一个单独的值转换器,它只执行第一步,第二步由 Int32Converter 涵盖。
有没有办法可以在 XAML 中链接这两个现有类,而无需创建另一个聚合它们的类?
如果我需要澄清任何内容,请告诉我。 :)
谢谢。
最佳答案
我用了this method作者:Gareth Evans 在我的 Silverlight 项目中。
这是我的实现:
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/