【发布时间】:2014-04-14 19:45:30
【问题描述】:
我有一个 DataGrid,其组合框分配了客户 ID,每个客户 ID 可能有许多帐户 ID,这些帐户 ID 分配在自己的组合框中。我想要做的是,当用户从组合框中选择客户 ID 时,帐户 ID 然后会使用所选的特定客户 ID 进行更新。
我想我的代码差不多了。
在这里,我在组合框元素样式中应用了 customerId 的 itemsource。如您所见,当从客户框中选择一个项目时,我有一个 SelectedItem 的属性。
<DataGridComboBoxColumn.ElementStyle>
<Style TargetType="ComboBox">
<Setter Property="ItemsSource"
Value="{Binding DataContext.EntityCollection,
RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType=Window}}"/>
<Setter Property="DisplayMemberPath" Value="Name"/>
<Setter Property="SelectedItem" Value="{Binding SelectedItem}"></Setter>
<Setter Property="HorizontalAlignment" Value="Center"></Setter>
</Style>
</DataGridComboBoxColumn.ElementStyle>
所以在 Account Id 的 Combobox 中,我不确定将 SelectedItem.AID 代码放在哪里...
我已将它放在第一行的 SelectedValueBinding 属性中,但它不起作用。我需要将 SelectedItem 放在 EditingElementStyle 标记内的 Itemsource 属性中吗?
<DataGridComboBoxColumn SelectedValueBinding="{Binding SelectedItem.AID}" SelectedValuePath="SID" Header="SID" Width="70">
<DataGridComboBoxColumn.EditingElementStyle>
<Style TargetType="ComboBox">
<Setter Property="ItemsSource"
Value="{Binding DataContext.EntityCollection,
RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType=Window}}"/>
<Setter Property="DisplayMemberPath" Value="AID"/>
</Style>
</DataGridComboBoxColumn.EditingElementStyle>
<DataGridComboBoxColumn.ElementStyle>
<Style TargetType="ComboBox">
<Setter Property="ItemsSource"
Value="{Binding DataContext.EntityCollection,
RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType=Window}}"/>
<Setter Property="DisplayMemberPath" Value="AID"/>
<Setter Property="HorizontalAlignment" Value="Center"></Setter>
</Style>
</DataGridComboBoxColumn.ElementStyle>
但是我可能会走得很远,所以我将不胜感激。
谢谢
【问题讨论】:
标签: c# wpf xaml datagrid observablecollection