我试过以下。第一个绑定很好(它按预期返回行DataItem)但第二个导致UnsetValue,给出以下错误:
System.Windows.Data警告:40:BindingExpression路径错误:'object'''ValueHolderWithDataContext'(HashCode = 46875058)'上找不到'igDP:Cell'属性。 BindingExpression:路径= IGDP:Cell.DataPresenter.DataContext; DataItem ='ValueHolderWithDataContext'(HashCode = 46875058); target元素是'ValueHolderWithDataContext'(HashCode = 46875058); target属性是'Value'(类型'Object')
我希望第二个绑定绑定到的是xamdatagrid(UnboundFiled所属的那个)DataContext。
我需要在这里更改什么?
<igDP:UnboundField Name="Sample" Label="Sample">
<igDP:UnboundField.Binding>
<MultiBinding Converter="{StaticResource SampleConverter}">
<Binding/>
<Binding Path="igDP:Cell.DataPresenter.DataContext" RelativeSource="{RelativeSource Self}"/>
</MultiBinding>
</igDP:UnboundField.Binding>
</igDP:UnboundField>
答案 0 :(得分:1)
此处出现问题的原因是绑定定义不正确。由于UnboundField是绑定到某个DataType的类,因此下一个绑定部件定义RelativeSource="{RelativeSource Self}"
将返回UnboundField绑定到它的DataContext(某个DataType)。因此,它将尝试在UnboundField对象的DataContext中找到igDP:Cell属性。那里没有这样的属性,因此我们得到BindingExpression错误。可能的解决方案是替换绑定部件定义:
<Binding Path="igDP:Cell.DataPresenter.DataContext" RelativeSource="{RelativeSource Self}"/>
下一个:
<Binding RelativeSource="{RelativeSource FindAncestor, AncestorType=igDP:Cell}" Path="DataPresenter.DataContext"/>
问候。