当前位置:  开发笔记 > 编程语言 > 正文

将元素绑定到两个源

如何解决《将元素绑定到两个源》经验,为你挑选了2个好方法。

我目前有两个接受任何号码的文本框.我有一个文本块,它输入两个数字并计算平均值.

我想知道是否有办法将这个文本块绑定到两个文本框并使用自定义转换器来计算平均值?我目前正在捕获两个文本框上的文本更改事件并计算平均值,但我认为数据绑定会更有效,更容易.



1> Jacob Carpen..:

你在找MultiBinding.

你的XAML遗嘱看起来像这样:


  
    
      
      
    
  

随着合理的替代品myConverter,myFirst.ValuemySecond.Value.


如果我想将constance值传递给多重绑定的绑定之一,我该怎么办呢?请帮忙!

2> Donnelle..:

创建一个实现IMultiValueConverter的转换器.它可能看起来像这样:

class AverageConverter : IMultiValueConverter
{
    #region IMultiValueConverter Members
    public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
    {
        int total = 0;
        int number = 0;
        foreach (object o in values)
        {
            int i;
            bool parsed = int.TryParse(o.ToString(), out i);
            if (parsed)
            {
                total += i;
                number++;
            }
        }
        if (number == 0) return 0;
        return (total/number).ToString();
    }

    public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
    {
        throw new NotImplementedException();
    }

    #endregion
}

多值转换器接收一个对象数组,每个绑定对应一个对象数组.您可以根据需要处理这些,具体取决于您是打算使用double还是int或者其他什么.

如果两个文本框是数据绑定,则可以在文本块的多重绑定中使用相同的绑定(记住在属性更改时通知以便更新平均值),或者可以通过按ElementName引用文本框来获取文本值.





   
      
         
         
         
         
         

      
   

推荐阅读
ERIK又
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有