2013-12-27 2 views
0

ObservableCollection이 ItemsSource 인 ListView가 있습니다. ListView에는 하나의 CheckBox와 함께 여러 열이 포함되어 있습니다. 행을 선택하면 CheckBox에서 직접 클릭하지 않아도 CheckBox가 현재 값에 따라 Checked 또는 UnChecked가됩니다.WPF ListView가 ObservableCollection에서 업데이트되지 않음

여기까지 제가 지금까지 있습니다.

private void lstIndexes_SelectionChanged(object sender, SelectionChangedEventArgs e) 
    { 
     if (lstIndexes.SelectedItem != null) 
     { 
      if (lstIndexes.SelectedItem is IndexData) 
      { 
       IndexData index = lstIndexes.SelectedItem as IndexData; 
       if (index.IsChecked) 
       { 
        index.IsChecked = false; 
       } 
       else 
       { 
        index.IsChecked = true; 
       } 
      } 
     } 
    } 

답변

3

당신은 UI가 기본 소스 객체의 모든 속성 변경에 통보 가도록 (듯이), 클래스 IndexDataINotifyPropertyChanged 인터페이스를 구현해야합니다.

ObservableCollection은 항목이 컬렉션에 추가되거나 삭제 될 때만 UI를 업데이트합니다. 기본 개체의 모든 속성 변경에 대해 UI를 새로 고치려면 INPC를 사용해야합니다.

private bool isChecked; 
public bool IsChecked 
{ 
    get { return isChecked; } 
    set 
    { 
     if(isChecked != value) 
     { 
      isChecked = value; 
      // Call OnPropertyChanged whenever the property is updated 
      OnPropertyChanged("IsChecked"); 
     } 
    } 
} 
+0

부탁드립니다. – Tsukasa

+0

환영 인사 쓰 카사 .. :) –

관련 문제