注意:我已经看过this但它没有回答这个问题。
我的应用程序首次运行体验,向用户提供了一些解释应用程序功能的不同选项。如果他们选择其中一个选项,我想向他们展示处理该特定功能的PanoramaItem
。它恰好是第3项。
因此,Panorama.SelectedItem
是只读的。还有其他方法吗?如果没有,我可以伪造它,比如模拟一些手势输入吗?如何做到这一点?
答案 0 :(得分:2)
由于SelectedItem
和SelectedIndex
目前属于private set
规则,实际上您无法通过应用程序修改它们。但是,您可以更改DefaultItem
属性:
<PANORAMA_CONTROL>.DefaultItem = <PANORAMA_CONTROL>.Items[1];
由于您将项目设置为列表中的第一项,因此会导致项目重新排列,但除此之外,这是一种可接受的方式,因为它实际上会将项目放在前面用户。
答案 1 :(得分:1)
您可以更改DefaultItem。
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
string selected = String.Empty;
//check to see if the selected parameter was passed.
if (NavigationContext.QueryString.ContainsKey("selected"))
{
//get the selected parameter off the query string from MainPage.
selected = NavigationContext.QueryString["selected"];
}
//did the querystring indicate we should go to item2 instead of item1?
if (selected == "item2")
{
//item2 is the second item, but 0 indexed.
myPanorama.DefaultItem = myPanorama.Items[1];
}
base.OnNavigatedTo(e);
}
这是我为不同目的而制作的一个例子,但它具有此功能。 http://dl.dropbox.com/u/129101/Panorama_querystring.zip