如何在Windows 8(C#)应用程序中的ListView中将焦点设置为listitem

时间:2013-04-21 21:36:36

标签: c# listview windows-store-apps listviewitem

当我启用键盘访问并将listview以编程方式滚动到项目nr 50时,我想将焦点项目设置为nr 50,因此如果用户按下向下箭头,他将从nr 50向下滚动。目前,该项目的重点是列表跳转到nr 1。

我尝试将selectedItem属性设置为50,但仍然是相同的行为。

此解决方案似乎适用于HTML / JS应用程序,但我没有看到与C#相同的API? how to set a focus of Listview item in Metro apps?

yourListView.currentItem = { index: 8, hasFocus: true, showFocus: true }

2 个答案:

答案 0 :(得分:1)

以下是您的代码段:

ListViewItem ^ selectedListItem = static_cast(yourListView-> ContainerFromIndex(RecipientList-> SelectedIndex));

selectedListItem->聚焦(视窗:: UI ::的Xaml :: FocusState ::指针);

答案 1 :(得分:0)

使用ScrollIntoView方法。

yourListView.ScrollIntoView(dataItem);

其中dataItem是对您要查看的项目的引用。

如果ListViiew位于SemanticZoom容器中,则会有所不同。你必须调用MakeVisible()方法。

Details on MSDN