У меня есть datagrid с двумя столбцами: text и combobox. И combobox должен иметь привязку к наблюдаемой коллекции.Datagridcomboboxcolumn bind to 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:
<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 с наблюдаемой коллекцией «ListObjectState» в классе «_dataContext».
Спасибо!
Где вы заполняете коллекцию 'SourceObjList' и 'ListObjectState'? –
Я заполняю их один раз в конструкторе окна. –
Можете ли вы сделать одну вещь для инициализации этих коллекций перед вызовом InitializeComponent и посмотреть, работает ли это. –