2011-10-20 7 views
2

관찰 가능한 수집 소스가있는 목록보기가 있습니다. 코드에서 데이터가 변경되었다고 확신하지만 UI가 변경 사항을 표시하지 않는 이유는 완전히 지쳐 있습니다. 내가 뭘 놓치고 있니?업데이트시 목록보기가 변경되지 않습니다.

내 XAML :

<GridViewColumn Width="70" Header="Status"> 
    <GridViewColumn.CellTemplate> 
     <DataTemplate> 
      <!--<CheckBox IsChecked="{Binding Path=Status, Mode= Twoway}" HorizontalContentAlignment="Center" IsEnabled="False"/>--> 
      <TextBlock Text="{Binding Path=Status, Mode= Twoway}" TextAlignment="Center" Loaded="Page_Loaded"/> 
     </DataTemplate> 
    </GridViewColumn.CellTemplate> 
</GridViewColumn> 

내 클래스 : 나는 상태를 변경하려면

ObservableCollection<tblADRMaster> list = new ObservableCollection<tblADRMaster>(); 
CurrentCase = FileMaintenanceBusiness.Instance.GetADRMasterInfobyKeywordRefresh(caseNo.CaseIDSystem, "CaseIDSystem"); 
foreach (var c in listFrWWC) 
{ 
    if (c.CaseIDSystem != CurrentCase.CaseIDSystem) 
     list.Add(c); 
    else 
     list.Add(CurrentCase); 

} 
foreach (var caseMaster in list) 
{ 
    caseMaster.IsMissingDocs = GetMissingDoc(caseMaster.tblADRDispositions); 
    caseMaster.IsProblemCase = !string.IsNullOrEmpty(caseMaster.ProblemNote) ? "Yes" : "No"; 
    caseMaster.Status = GetStatus(caseMaster); 
} 

lvAdrMaster.ItemsSource = list; 

:

public partial class tblADRMaster: INotifyPropertyChanged 
{ 
    public string Status 
    { 
     get { return _status; } 
     set 
     { 
      if (_status != value) 
      { 
       _status = value; 
       OnPropertyChanged("Status"); 
      } 
     } 
    } 
} 

이 뒤에 내 코드입니다. 그것은 내가 breakpoint를 놓고 coz를 변경하고 STATUS가 HOLD에서 ACTIVE로 갔지만 listview는 변경 사항을 표시하지 않습니다. 다시 btn을 누르거나 항목을 다시로드하지 않으면 HOLD 상태로 유지됩니다.

나는 하루 종일 문제를 해결해 왔기 때문에 내가 놓칠 수있는 것을 생각하지 못했습니다. Pls 말해. 감사.

private ListCollectionView EmpCollectionView 
    { 
     get 
     { 
      return (ListCollectionView)CollectionViewSource.GetDefaultView(ListOfEmp); 
     } 
    } 


    private ObservableCollection<Employee> listOfEmp = new ObservableCollection<Employee>(); 
    public ObservableCollection<Employee> ListOfEmp 
    { 
     get { return listOfEmp; } 
     set { listOfEmp = value; } 
    } 

CollecitonViewSource를 사용하는

Text="{Binding Path=Status, Mode= Twoway, UpdateSourceTrigger=PropertyChanged}" 
+0

lvAdrMaster 용 XAMl을 보여줍니다. 그리고 목록을 음모 속성으로 노출하고 바인딩해야하며 목록보다 더 나은 이름을 사용해야합니다. – Paparazzi

답변

1

당신의 TextBlock의 결합이 시도 너 너 해본거야? tblADRMaster 클래스에 INotifyPropertyChanged 인터페이스를 구현하고 Status 속성에 대한 속성 알림을 제기 했습니까?

1

시도를하고 U 후 컬렉션이 단지

public void OnAdd(object sender) 
    { 
     ToggleButton tb = sender as ToggleButton; 

     EmpCollectionView.SortDescriptions.Clear(); 
     if (tb.IsChecked == true) 
     { 

      EmpCollectionView.SortDescriptions.Add(new SortDescription(tb.Content.ToString(), ListSortDirection.Ascending)); 
      EmpCollectionView.Refresh(); 
     } 
     else 
     { 
      EmpCollectionView.SortDescriptions.Add(new SortDescription(tb.Content.ToString(), ListSortDirection.Descending)); 
      EmpCollectionView.Refresh(); 
     } 
    } 
0

처럼 collectionViewSource 를 새로 업데이트 :

관련 문제