尝试在XamDataGrid中的UnboundField上设置MultiBinding

时间:2016-05-03 03:13:11

标签: wpf infragistics xamdatagrid

我试过以下。第一个绑定很好(它按预期返回行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>

1 个答案:

答案 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"/>

问候。