我有两列datagrid:文本和组合框。组合框应该对可观察的集合有约束力。Datagridcomboboxcolumn绑定到ObservableCollection项目中的Datagrid源文件
这是DataGrid的项目源伪代码:对于数据网格
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不显示comboboxcolumn任何项目。请帮助我将datagridcombobox绑定到“_dataContext”类中的observable集合“ListObjectState”。
谢谢!
你在哪里填充集合'SourceObjList'和'ListObjectState'? –
我在窗口的构造函数中填充它们一次。 –
你可以在'InitializeComponent'调用之前做一件事来初始化这些集合,看看它是否有效。 –