好的,所以,我有一个ListView派生的控件,可以动态更改Grouping和ItemsSource。当我将滚动条消失,然后将我的ItemsSource更改为不同的ICollectionView时,我的滚动条不会返回。
基本问题是ListView在激活分组时更改为VirtualizedStackPanel,并且在取消激活分组时不会更改。
我不介意在分组时禁用虚拟化 - 这不是问题。我需要的是一种在我更改ItemsSource时让ListView重新生成它的ItemPanel的方法。
答案 0 :(得分:0)
您可以为SourceUpdated事件添加事件处理程序,然后将ItemsPanelTemplate重置为Resources中定义的模板吗?
类似的东西:
public MyWindow()
{
InitializeComponent();
MyListView.SourceUpdated += new EventHandler<DataTransferEventArgs>( OnSourceUpdated );
}
void OnSourceUpdated( object sender, DataTransferEventArgs e )
{
MyListView.ItemsPanel = (ItemsPanelTemplate)Resources["MyItemsPanelTemplate"];
}