和普通转换器原理差不多
先看效果 最后一行的值是前面的总和
首先创建一个类继承接口 IMultiValueConverter
class NumMultiConvert : IMultiValueConverter { #region Field 字段 #endregion #region Constructor 构造函数 #endregion #region Property 属性 #endregion #region Event 事件 #endregion #region Method 方法 #endregion public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { return values.Where(i => i != null).Select(i => System.Convert.ToDouble(i)).Sum().ToString(); } public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) { throw new NotImplementedException(); } }
前台引用转换器
使用
<StackPanel Orientation="Vertical"><TextBox Name="tb1" Width="100" FontSize="30" Text="25" /><TextBox Name="tb2" Width="100" FontSize="30" Text="75" /><TextBox Name="tb3" Width="100" FontSize="30" Text="55" /><TextBox Name="tb4" Width="100" FontSize="30" Text="10" /><TextBlock Width="100" FontSize="30"><MultiBinding Converter="{StaticResource NumMultiConvert}"><Binding ElementName="tb1" Path="Text" /><Binding ElementName="tb2" Path="Text" /><Binding ElementName="tb3" Path="Text" /><Binding ElementName="tb4" Path="Text" />
注意 MultiBinding 在XAML里面没有智能提示。。。。