C# 为什么两个多重绑定中只有一个有效?

C# 为什么两个多重绑定中只有一个有效?,c#,wpf,binding,multibinding,C#,Wpf,Binding,Multibinding,我在XAML的两个不同点上使用了多重绑定。代码如下: 我面临一个奇怪的问题。第一个MultiBinding工作得很好,但第二个从未调用过。如果我注释掉第一个多绑定,第二个就开始按预期工作 这是WPF中的某种限制吗?还是我遗漏了一些关于多重绑定的内容 注意:正确调用了RaisePropertyChanged。但是,在第二个绑定中,根本不会调用转换器 编辑 以下是转换器的代码: using System; using System.Globalization; using System.Wind

我在XAML的两个不同点上使用了
多重绑定。代码如下:


我面临一个奇怪的问题。第一个
MultiBinding
工作得很好,但第二个从未调用过。如果我注释掉第一个
多绑定
,第二个就开始按预期工作

这是WPF中的某种限制吗?还是我遗漏了一些关于多重绑定的内容

注意:正确调用了
RaisePropertyChanged
。但是,在第二个绑定中,根本不会调用转换器

编辑

以下是转换器的代码:

using System;
using System.Globalization;
using System.Windows.Data;

namespace LogViewer.Converters
{
   public class CoordinateToStringConverter : IMultiValueConverter
   {
      #region IMultiValueConverter members

    public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
    {
        if (values != null && values.Length == 2)
        {
              object value = values[0];
              string format = values[1].ToString();

              if (value is DateTime)
                  return ((DateTime)value).ToString(format);

              if (value is TimeSpan)
                  return ((TimeSpan)value).ToString();

              if (value is double)
                  return ((double)value).ToString(format);
          }

          return null;
      }

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


       #endregion
    }
}

我已经分析了你的问题。这对我来说很好。多重绑定没有问题。
你有没有检查过带断点的转换器?它被调用了两次。否则,您的问题就出在ChartMouseY和ChartMouseX中。

切换这两个选项时,即在X之前设置Y是否有效?@poke:您是对的。。。但现在我真的很困惑。。。为什么它以一种方式工作,而不是以另一种方式工作/你是说,如果你把它们换过来,它们都能工作?我没想到:o@poke:不幸的是,是的,它们在切换时同时工作。。。这种行为的原因可能是什么?您是否可以包含CoordinateToStringConverter的代码?同时,您可以尝试在多重绑定中的绑定上放置一个调试转换器,并查看转换是否被命中。