【发布时间】:2014-02-14 09:16:25
【问题描述】:
我有两列数据网格:文本和组合框。并且组合框应该绑定到可观察的集合。
这是数据网格项目源的伪代码:
public class ModeObjectState
{
public int ID { get; set; }
public int ObjectTypeID { get; set; }
public string State { get; set; }
}
public class ModeObject
{
public string Name { get; set; }
public int objID { get; set; }
public int Type { get; set; }
public int StateID { get; set; }
public bool Format { get; set; }
}
public class _dataContext
{
public ObservableCollection<ModeObjectState> ListObjectState { get; set; }
public ModeObject ModeObj { get; set; }
}
ObservableCollection<_dataContext> SourceObjList
objTable.ItemsSource = SourceObjList;
这是数据网格的 xaml 代码:
<DataGrid x:Name="objTable" AutoGenerateColumns="False" >
<DataGrid.Columns>
<DataGridTextColumn x:Name="ColumnName" Binding="{Binding Path=ModeObj.Name}" IsReadOnly="True" />
<DataGridComboBoxColumn x:Name="ColumnState" ItemsSource="{Binding ListObjectState}" DisplayMemberPath="State" SelectedValuePath="ID" SelectedValueBinding="{Binding Path=ModeObj.StateID}" />
</DataGrid.Columns>
</DataGrid>
但 datagrid 不显示组合框列中的任何项目。请帮助我将 datagridcombobox 绑定到“_dataContext”类中的可观察集合“ListObjectState”。
谢谢!
【问题讨论】:
-
你在哪里填写集合
SourceObjList和'ListObjectState'? -
我在窗口的构造函数中填充一次。
-
你能在
InitializeComponent调用之前做一件事初始化这些集合,看看是否有效。
标签: wpf xaml binding datagridcomboboxcolumn