2014-10-28 3 views
0

작동하지 않습니다 나는 사람이라는 클래스와 사람들이라는 목록 아래에 표시 한 2 인.WPF DataGridComboBoxColumn

<DataGrid x:Name="dataGrid1" Height="300"> 
    <DataGridComboBoxColumn Header="Name" DisplayMemberPath="Name" SelectedItemBinding="{Binding Path=Name}"> 
     <DataGridComboBoxColumn.EditingElementStyle> 
      <Style TargetType="ComboBox"> 
       <Setter Property="ItemsSource" Value="{Binding Path=People}"/> 
      </Style> 
     </DataGridComboBoxColumn.EditingElementStyle> 
     <DataGridComboBoxColumn.ElementStyle> 
      <Style TargetType="ComboBox"> 
       <Setter Property="ItemsSource" Value="{Binding Path=People}"/> 
      </Style> 
     </DataGridComboBoxColumn.ElementStyle> 
    </DataGridComboBoxColumn> 
</DataGrid> 

그러나 DataGrid는 아무 것도 표시하지 않습니다. 뭐가 문제 야?

답변

0

<DataGrid.Columns> 태그 안에 있어야합니까?

+0

열 정의가' '에 래핑 될 때까지 작성자 코드가 작동하지 않지만 부분적으로는 다른 문제가 있습니다. –

0
  1. People은 필드가 아닌 속성이어야합니다.
  2. 당신은 당신이 그렇게 그리드 추가 한 항목을 감지 것 ObservableCollection<Person>와 목록을 교체해야 People, 또는에 할당 컬렉션을 전에 을 채워야합니다.
  3. 당신은 INotifyPropertyChanged를 구현해야합니다 InitializeComponent(), 또는 속성을 포함하는 클래스에 전에 전화를 People를 지정하고 그리드가 새 컬렉션을 감지 있도록 People가 할당 될 때 PropertyChanged를 해고해야합니다.
  4. @Koen이 지적했듯이 열 정의는 집합 적으로 <DataGrid.Columns> 태그로 둘러싸여 야합니다.
관련 문제