1

我有一个属性,它是 ViewModel 中的一个嵌套对象,我正在视图中创建一个 CollectionViewSource 并绑定到该属性。(obj 是对象)

<CollectionViewSource Source="{Binding obj.myObjs}" x:Key="MyObjView" >
            <CollectionViewSource.SortDescriptions>
                <scm:SortDescription PropertyName="Name" Direction="Ascending"/>
            </CollectionViewSource.SortDescriptions>
        </CollectionViewSource>

然后将此视图绑定到网格

<dxg:GridControl x:Name="Grid" ItemsSource="{Binding Source={StaticResource MyObjView}}" SelectedItem="{Binding myObj1}">

  <dxg:GridColumn Header="All" FieldName="Disc"/>
  <dxg:GridColumn Header="Adj" FieldName="Adjust"/>
 <dxg:GridColumn Header="Name" FieldName="Acct.Name"/>
 </dxg:GridControl>

但是现在第三列没有显示任何数据。我认为因为 FieldName 没有进入嵌套,所以我尝试使用 DisplayMemberBinding

<dxg:GridColumn Header="Name" DisplayMemberBinding="{Binding Acct.Name}" />

这也行不通。我想知道如何将网格列绑定到该嵌套属性?

4

2 回答 2

1

根据DisplayMemberBinding 属性文档,在使用 DisplayMemberBinding 时应使用以下格式:

<dxg:GridColumn Header="Name" Binding="{Binding Path=RowData.Row.Acc.Name}"/> 
于 2013-11-07T09:16:22.067 回答
0

看起来您可能需要Mode=OneWay在绑定中(假设他们不允许更改标题中的帐户名称)。

DisplayMemberBinding="{Binding Acct.Name, Mode=OneWay}"
于 2013-11-06T21:59:37.887 回答