如何以编程方式将Wrap Grid滚动到Windows Store应用程序中其ItemSsource中的特定项目?

时间:2013-05-14 16:40:44

标签: c# xaml windows-store-apps

我有以下内容:

<GridView.ItemsPanel>
    <ItemsPanelTemplate>
        <WrapGrid Orientation="Vertical"
                  MaximumRowsOrColumns="10" />
    </ItemsPanelTemplate>
</GridView.ItemsPanel>

我想滚动到特定项目,但无法找到方法。

到目前为止,我有:

int itemIndex = ...;
var scrollBar = TheGridView.GetFirstDescendantOfType<ScrollViewer>();
scrollBar.ScrollToHorizontalOffset((double)itemIndex / NumberRows);

...但这感觉奇怪的是hacky,并且意味着我必须以编程方式计算行数。

const int IndividualItemHeight = /* Nasty Hard-Coded thing */;
numberOfRows = (int)((TheGridView.ActualHeight - TheGridView.Padding.Top -
                      TheGridView.Padding.Bottom) / IndividualItemHeight);

......这更加黑客。

必须有更好的方法。任何帮助非常感谢!

1 个答案:

答案 0 :(得分:0)

要使用GridView滚动到特定视图,您只需要访问绑定到网格视图项的对象并调用ListViewBase.ScrollIntoView(Object)