【发布时间】:2014-04-14 08:35:51
【问题描述】:
我想知道当来自组合框的 SelectionChanged 事件被引发时,是否可以为数据网格列分配一个值?
例如,
在 DataGrid 内的 ComboBox 中,我有 2 个值“0”和“1”
如果用户选择“0” - 网格内和同一行中名为 ID 的另一列将显示“0”,然后如果用户决定选择“1”,则同一行中的 ID 将更改为“1” "
另一件事是我在 ObservableCollection 中已经有了这些数据,所以基本上如果组合为 0,那么我需要从 ObservableCollection 中获取 0 的 ID。
我希望这是可以理解的。
----- 代码------
<DataGrid.Columns>
<DataGridComboBoxColumn SelectedValueBinding="{Binding CID}" SelectedValuePath="CID" Header="CID" Width="70">
<DataGridComboBoxColumn.EditingElementStyle>
<Style TargetType="ComboBox">
<!--<EventSetter Event="SelectionChanged" Handler="abc"></EventSetter>-->
<Setter Property="ItemsSource"
Value="{Binding DataContext.EntityCollection,
RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType=Window}}"/>
<Setter Property="DisplayMemberPath" Value="CID"/>
</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="CID"/>
</Style>
</DataGridComboBoxColumn.ElementStyle>
<DataGridComboBoxColumn.HeaderStyle>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="HorizontalContentAlignment"
Value="Center" />
</Style>
</DataGridComboBoxColumn.HeaderStyle>
</DataGridComboBoxColumn>
<DataGridTextColumn Header="UID" Binding="{Binding EntityCollection.UID}" Width="70">
</DataGridTextColumn>
所以基本上,我希望将“UID”TextColumn 更新为用户在 CID 组合框中选择的集合中的任何 ID。
干杯
【问题讨论】:
-
向我们展示代码。到目前为止你做了什么?
-
希望这更有意义?我主要是在 XAML 中尝试这样做,所以没有太多 C# 代码完成
标签: c# wpf xaml datagrid observablecollection