0

好的,所以,我有一个 ListView 派生控件,可以动态更改 Grouping 和 ItemsSource。当我分组以使滚动条消失,然后将我的 ItemsSource 更改为不同的 ICollectionView 时,我的滚动条不会返回。

基本问题是 ListView 在激活分组时更改为 VirtualizedStackPanel,并且在取消激活分组时不会变回。

我不介意在分组时禁用虚拟化——这不是问题。当我更改 ItemsSource 时,我需要一种使 ListView 重新生成它的 ItemPanel 的方法。

4

1 回答 1

0

您能否将事件处理程序添加到SourceUpdated事件,然后将 ItemsPanelTemplate 重置为您的Resources中定义的模板?

就像是:

public MyWindow()
{
   InitializeComponent();

   MyListView.SourceUpdated += new EventHandler<DataTransferEventArgs>( OnSourceUpdated );
}

void OnSourceUpdated( object sender, DataTransferEventArgs e )
{
   MyListView.ItemsPanel = (ItemsPanelTemplate)Resources["MyItemsPanelTemplate"];
}
于 2010-03-23T17:25:44.920 回答