我有一个属性,它是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}" />
这也行不通。我想知道如何将网格列绑定到该嵌套属性?
答案 0 :(得分:1)
相对于the DisplayMemberBinding property documentation,使用DisplayMemberBinding时应使用以下格式:
<dxg:GridColumn Header="Name" Binding="{Binding Path=RowData.Row.Acc.Name}"/>
答案 1 :(得分:0)
看起来您可能需要Mode=OneWay
(假设他们不允许更改标题中的帐户名称)。
DisplayMemberBinding="{Binding Acct.Name, Mode=OneWay}"