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