【发布时间】:2011-01-18 17:01:42
【问题描述】:
我试图在 DataGrid 中使用 ComboBox,这将允许用户选择来自不同表的值。我使用 ViewModel 类作为 DataContext,其中包含终端的 ObservableCollection 和终端类型的另一个。
网格上的绑定很好,所有的行都被填充了,DataGridTextColumns 都显示了正确的数据,但是我的 ComboBox 是空的。
我知道我尝试绑定的 ObservableCollection 已被填充,如果我将 ComboBox 移到 DataGrid 之外,它会按预期工作。
<my:DataGrid Name="MenuDetailGrid" AutoGenerateColumns="False" ItemsSource="{Binding Terminals}">
<my:DataGrid.Columns>
<my:DataGridTextColumn Header="Terminal Type ID" Binding="{Binding TERMINAL_TYPE_ID}" IsReadOnly="True" />
<my:DataGridTemplateColumn Header="Terminal Type">
<my:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox DisplayMemberPath="TTYPE_NAME" SelectedValuePath="TERMINAL_TYPE"
SelectedValue="{Binding TERMINAL_TYPE_ID}"
ItemsSource="{Binding TerminalTypes}" />
</DataTemplate>
</my:DataGridTemplateColumn.CellTemplate>
</my:DataGridTemplateColumn>
当 DataGrid 的一部分时,ComboBox 上的绑定行为显然是不同的,但我对为什么有点难过?
有人可以帮我理解我做错了什么吗?
【问题讨论】:
-
为什么不使用
?