簡體   English   中英

在WPF ListView中刷新轉換的綁定

[英]Refresh converted bindings in WPF ListView

我有一個帶有GridView(多列)布局的ListView。 某些列具有使用當前語言環境來美化數字,將unix時間戳轉換為日期時間字符串或僅將枚舉轉換為它的本地化描述的轉換器。

可以在運行時更改語言環境,因此我需要一種在發生這種情況時重新運行這些轉換器的方法。 請注意,綁定的值本身沒有更改,但是轉換器的輸出在不同的語言環境下可能會有所不同。

最好的方法是什么? 我不想遍歷每個受影響列表的整個集合並調用OnPropertyChanged。 有沒有一種方法可以強制ListView刷新每個綁定,或者僅刷新某些列的綁定?

我找到了答案:

ICollectionView view = CollectionViewSource.GetDefaultView(MyListView.ItemsSource);
view.Refresh();

您可以使用以下命令強制ListView更新ItemsSource綁定:

lview.GetBindingExpression(ListView.ItemsSourceProperty).UpdateTarget();

使用相同的語法,您當然可以變得更加具體,並且僅對特定列的綁定強制進行更新,但是根據ListView中的行數,您可能看不到性能差異。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM