作为WPF的相对新手,我很难理解为什么我会在以下情况下遇到绑定错误。
我有以下XAML
<TextBlock.Text>
<MultiBinding Converter="{StaticResource CardinalityConverter}">
<Binding/>
<Binding Path="ed.Min" />
<Binding Path="ed.Max" />
</MultiBinding>
</TextBlock.Text>
我得到的绑定错误如下
System.Windows.Data Warning: 40 : BindingExpression path error: 'ed' property not found on 'object' ''SDNode' (HashCode=2343823)'. BindingExpression:Path=ed.Min; DataItem='SDNode' (HashCode=2343823); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')
System.Windows.Data Warning: 40 : BindingExpression path error: 'ed' property not found on 'object' ''SDNode' (HashCode=2343823)'. BindingExpression:Path=ed.Max; DataItem='SDNode' (HashCode=2343823); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')
如果我在&#34; CardinalityConverter&#34;中加入断点然后看到以下内容,您可以看到值(1)和值(2)未设置。
如果我展开值(0),则会看到以下内容
&#39; ED&#39;很明显,为什么绑定不承认这一点?
答案 0 :(得分:0)
字段不能是Binding
的源或目标,只有普通的CLR属性或依赖属性才能参与WPF的绑定系统。
尝试将绑定设置为以下内容:
<Binding Path="ED.Min" />
<Binding Path="ED.Max" />
如果我没有弄错的话,根据你提供的图片来判断你已经公开了一个名为ED
的公共财产,所以绑定应该适用。
字段如下所示:
public class SomeClass
{
public string SomeField = "Some Value";
}
虽然财产看起来像这样:
public class SomeClass
{
public string SomeProperty { get; set; }
}