我有一个带有GridView(多列)布局的ListView。某些列具有使用当前区域设置来美化数字,将unix时间戳转换为日期时间字符串,或者只是将枚举转换为其本地化描述的转换器。
可以在运行时更改语言环境,因此我需要一种方法来重新运行这些转换器。请注意,绑定的值本身没有改变,但转换器的输出可能因不同的语言环境而不同。
最好的方法是什么?我不想迭代每个受影响列表的整个集合并调用OnPropertyChanged。有没有办法强制ListView刷新每个绑定,或只是某些列的绑定?
答案 0 :(得分:1)
我找到了答案:
ICollectionView view = CollectionViewSource.GetDefaultView(MyListView.ItemsSource);
view.Refresh();
答案 1 :(得分:0)
您可以强制ListView使用以下内容更新ItemsSource绑定:
lview.GetBindingExpression(ListView.ItemsSourceProperty).UpdateTarget();
使用相同的语法,您当然可以获得更具体的信息,并且只对特定列的绑定强制更新,但根据ListView中的行数,您可能看不到性能差异。