2009-09-10 2 views
2

다른 컨트롤의 IsChanged 이벤트가 발생 될 때마다 내 ListView을 새로 고침해야합니다. 나는 그 작업을 수행하는 방법에 인터넷 검색, 내가 나에게 대답 here더 우아한 ListView 쿼리

하나를 이끄는 유래 링크를 보았다 근무 :

listView.ItemsSource = listView.ItemsSource  

정말 유일한 방법은 내 ListView를 새로인가요? 그것은 다소 벗어난 느낌.

+1

아야 -

또한 MSDN 포럼에서이 질문을 참조하십시오. 그 진술은 아무 것도 아닐 것이다. 그리고 누군가가 그렇지 않다면 어쨌든 그것을 생각하고 삭제할 것입니다. 위험한. –

답변

5

그냥 무효화하십시오.

listView.InvalidateProperty(ListView.ItemsSourceProperty) 

그럴 필요가 있습니다.

제쳐두고, 저는 MVVM을 살펴볼 것을 제안합니다. 그것은 훨씬 더 강력 해지는 경향이 있습니다. 내가 바인딩있어 내 뷰 모델이 될 것입니다 여기

<ListView ItemsSource="{Binding MyItems}" /> 

을 그리고 :

XAML을 :이 경우, MVVM 응용 프로그램, 난 그냥 이런 짓을 했을까

public ObservableCollection<MyItem> MyItems 
{ 
    get; set; 
} 

public void IsChangedHandler(...) 
{ 
    ... 
    this.OnPropertyChanged("MyItems"); 
}