다른 컨트롤의 IsChanged
이벤트가 발생 될 때마다 내 ListView
을 새로 고침해야합니다. 나는 그 작업을 수행하는 방법에 인터넷 검색, 내가 나에게 대답 here더 우아한 ListView 쿼리
하나를 이끄는 유래 링크를 보았다 근무 :
listView.ItemsSource = listView.ItemsSource
정말 유일한 방법은 내 ListView
를 새로인가요? 그것은 다소 벗어난 느낌.
다른 컨트롤의 IsChanged
이벤트가 발생 될 때마다 내 ListView
을 새로 고침해야합니다. 나는 그 작업을 수행하는 방법에 인터넷 검색, 내가 나에게 대답 here더 우아한 ListView 쿼리
하나를 이끄는 유래 링크를 보았다 근무 :
listView.ItemsSource = listView.ItemsSource
정말 유일한 방법은 내 ListView
를 새로인가요? 그것은 다소 벗어난 느낌.
그냥 무효화하십시오.
listView.InvalidateProperty(ListView.ItemsSourceProperty)
그럴 필요가 있습니다.
제쳐두고, 저는 MVVM을 살펴볼 것을 제안합니다. 그것은 훨씬 더 강력 해지는 경향이 있습니다. 내가 바인딩있어 내 뷰 모델이 될 것입니다 여기
<ListView ItemsSource="{Binding MyItems}" />
을 그리고 :
XAML을 :이 경우, MVVM 응용 프로그램, 난 그냥 이런 짓을 했을까
이public ObservableCollection<MyItem> MyItems
{
get; set;
}
public void IsChangedHandler(...)
{
...
this.OnPropertyChanged("MyItems");
}
무엇 당신의 매번 목록보기를 새로 고쳐야합니다. 그것은 확실히 당신의 appliction의 성능을 늦출 것입니다.
OvervableCollection을 목록보기의 ItemSource로 사용하는 것이 좋습니다.
스레드 안전 관찰 가능 컬렉션 here을 찾을 수 있습니다. 그 정말 꺼져, ListView.ItemsSource: howto update the UI whenever the source is updated?
아야 -
또한 MSDN 포럼에서이 질문을 참조하십시오. 그 진술은 아무 것도 아닐 것이다. 그리고 누군가가 그렇지 않다면 어쨌든 그것을 생각하고 삭제할 것입니다. 위험한. –