두 개의 열, 즉 텍스트와 콤보 박스가있는 DataGrid가 있습니다. 그리고 콤보 박스는 관찰 가능한 수집에 바인딩해야합니다. 데이터 그리드에 대한Datagridcomboboxcolumn은 Datagrid 소스의 항목에서 ObservableCollection에 바인딩합니다.
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>
하지만 데이터 그리드는 comboboxcolumn에있는 모든 항목을 표시하지 않습니다
이 데이터 그리드 항목 소스에 대한 의사입니다. 제발, "_dataContext"클래스의 관찰 가능한 컬렉션 "ListObjectState"에 datagridcombobox 바인딩을 도와주세요.
감사합니다.
컬렉션'SourceObjList' 및 'ListObjectState'는 어디에 채우고 있습니까? –
윈도우의 생성자에서 한 번 채 웁니다. –
'InitializeComponent' 호출 전에 그 콜렉션을 초기화하고 그 것이 작동하는지 확인할 수 있습니까? –