【发布时间】:2017-02-11 21:46:27
【问题描述】:
我在使用数据网格时遇到了问题,我想知道是否可以使绑定以某种方式工作。如果可以的话,它将使我免于进行一些不太合适的大量重构。
无论如何,在下面的网格中,我有主要的 DataGrid 列/行以及子行的 RowDetailsTemplate。主 DataGrid 绑定到 Positions 集合,而 RowDetailsTemplate 绑定到 Taxlots 集合。 Taxlots 集合中的项目没有 Description 或 Ticker 属性,而 Positions 集合中的项目有。
是否可以将 RowDetailsTemplate 中的 Ticker 和 Description 列绑定到主 DataGrid 中的相应列?
下面的简化 XAML:
<DataGrid x:Name="SecurityDataGrid"
ItemsSource="{Binding Positions,
NotifyOnSourceUpdated=True,
UpdateSourceTrigger=PropertyChanged}">
<DataGrid.RowDetailsTemplate>
<DataTemplate>
<DataGrid ItemsSource="{Binding Taxlots}">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Ticker}"/>
<DataGridTextColumn Binding="{Binding Description}"/>
<DataGridTextColumn Binding="{Binding Shares}"/>
</DataGrid.Columns>
</DataGrid>
</DataTemplate>
</DataGrid.RowDetailsTemplate>
<DataGrid.Columns>
<DataGridTextColumn Width="Auto" Header="Ticker" Binding="{Binding Path=Ticker, Mode=OneWay}"
TextOptions.TextFormattingMode="Display" />
<DataGridTextColumn Width="Auto" Header="Description" Binding="{Binding Path=Description, Mode=OneWay}"
TextOptions.TextFormattingMode="Ideal" />
<DataGridTextColumn Width="Auto" Header="Shares" Binding="{Binding SharesOwned, Mode=OneWay, Converter={StaticResource DecimalToStringConverter}}"
CellStyle="{StaticResource CellStyleRight}" />
</DataGrid.Columns>
</DataGrid>
【问题讨论】:
-
请看this,我认为
RelativeSource可能有用。 -
做得很完美。我希望我能给你功劳,但我认为 cmets 不允许这样做。
-
太好了!我希望您在链接中通过投票来认可该答案。
-
我现在做了,谢谢。