1

我正在寻找一种从集合中的集合中获取列的方法,该集合是我的网格的来源。

像这样:

<dxg:GridControl Grid.Row="0" Grid.Column="0" ItemsSource="{tools:ValidationBinding Model.Costs}">
<dxg:GridControl.Columns>
<dxg:GridColumn FieldName="Costs.Description" Header="Description" />
<dxg:GridColumn FieldName="Costs.CurrencyAbbrevation" />
</dxg:GridControl.Columns>

我的网格来源是 Model.Costs,这个集合有另一个集合成本。我需要该集合中的描述字段。有任何想法吗?

概述:

这是网格的来源:

 public virtual ObservableCollection<ShipmentLineCost> Costs { get; set; }

这还包含一个 observablecollection:

public virtual ObservableCollection<SettlementCost> Costs { get; set; } 

我希望它在我的网格中的描述值:

public string Description { get { return (Product == null) ? "" : Product.Description + ";" + SettlementUnit.Description + ";" + CurrencyAbbreviation; } } –

问候

4

1 回答 1

0

要获得DataContext您需要的内容,您必须备份可视化树并使用DataTemplate如下

<DataGridTextColumn Binding="{Binding Description}">
    <DataGridTextColumn.HeaderTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Description, 
                              RelativeSource={RelativeSource AncestorType=DataGrid}}"/>
        </DataTemplate>
    </DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn>

直接在Header属性上执行此操作将不起作用,因为它无法就地解析,因为列是未出现在树中的抽象对象。

于 2013-08-12T14:23:19.160 回答