C# 将WinRT ListView滚动到特定组
我有一个列表视图,里面有分组的项目。用户有不同的方式导航到页面中,根据他导航的方式,我希望在页面打开时查看某个组 我尝试设置这些:C# 将WinRT ListView滚动到特定组,c#,.net,xaml,windows-runtime,C#,.net,Xaml,Windows Runtime,我有一个列表视图,里面有分组的项目。用户有不同的方式导航到页面中,根据他导航的方式,我希望在页面打开时查看某个组 我尝试设置这些: itemGridView.ScrollIntoView(....); itemGridView.SelectedIndex = ....; itemGridView.SelectedItem = ....; 其中itemGridView是ListView的名称,但这一切似乎都不起作用 非常感谢您的帮助。您可以进行一些可视化树遍历以查找作为ListView模板一部分
itemGridView.ScrollIntoView(....);
itemGridView.SelectedIndex = ....;
itemGridView.SelectedItem = ....;
其中itemGridView是ListView的名称,但这一切似乎都不起作用
非常感谢您的帮助。您可以进行一些可视化树遍历以查找作为ListView模板一部分的ScrollViewer,找到组并将ScrollViewer滚动到您组的位置。您可以进行一些可视化树遍历以查找作为ListView模板一部分的ScrollViewer,找到该组并将ScrollViewer滚动到您所在组的位置。我明天会试一试。我希望有一个更简单的解决方案,但如果一个人必须遍历一个可视化树,那么他就必须遍历一个可视化树:不过,DWinRT-XAML工具包应该让它变得简单。只需调用var sv=itemGridView.getFirstDegenantofType(),然后调用var groupView=sv.getDegenantSoftType()。其中(gv=>gv.DataContext==yourGroupViewModel),然后调用sv.ScrollIntoView(gv)。当然,除非它不起作用……:)如果所有内容都是数据绑定的,那么在哪里和什么时候查找子体是安全的?我在页面的已加载事件处理程序中进行了尝试,但似乎还没有创建所有的组(例如,子体列表有3个项,尽管我有5个组等)。如果使用虚拟化面板,则可能有3个项而不是5个项。您可能需要尝试这样做来禁用虚拟化,否则-我不确定可视化树可能是什么。。。是的,你是对的,stackpanel是虚拟化的,这可能会给我穿越它带来麻烦。我明天会试试看。我希望有一个更简单的解决方案,但如果一个人必须遍历一个可视化树,那么他就必须遍历一个可视化树:不过,DWinRT-XAML工具包应该让它变得简单。只需调用var sv=itemGridView.getFirstDegenantofType(),然后调用var groupView=sv.getDegenantSoftType()。其中(gv=>gv.DataContext==yourGroupViewModel),然后调用sv.ScrollIntoView(gv)。当然,除非它不起作用……:)如果所有内容都是数据绑定的,那么在哪里和什么时候查找子体是安全的?我在页面的已加载事件处理程序中进行了尝试,但似乎还没有创建所有的组(例如,子体列表有3个项,尽管我有5个组等)。如果使用虚拟化面板,则可能有3个项而不是5个项。您可能需要尝试这样做来禁用虚拟化,否则-我不确定可视化树可能是什么。。。是的,你是对的,stackpanel是虚拟化的,这可能会给我穿越它带来麻烦。