我有一个带有一些内容的按钮的主页。我想在女巫中打开第二页或弹出窗口,我必须有一个长列表选择器,其中包含 X 个项目。当我选择其中一个时,我想将按钮的内容更改为所选项目。
我可以制作主页和第二页,但我不知道如何将结果发送回第一页。?
我有一个带有一些内容的按钮的主页。我想在女巫中打开第二页或弹出窗口,我必须有一个长列表选择器,其中包含 X 个项目。当我选择其中一个时,我想将按钮的内容更改为所选项目。
我可以制作主页和第二页,但我不知道如何将结果发送回第一页。?
如果您使用单独的页面来显示 longlistselector,那么您可以尝试这样的事情。
//in long list page,
Void longlist_SelectionChanged()
{
PhoneApplicationService.Current.State["key"] = longlist.selecteditem;
NavigationService.GoBack();
}
//in your main page where the selected data has to be displayed..
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
if(PhoneApplicationService.Current.State.ContainsKey("key"))
{
Button.Content = PhoneApplicationService.Current.State["key"];
}
}
如果您使用的是“MVVM Light”库,那么您可以像这样使用 Messenger 服务....
在选择更改后的第二页发送消息
Messenger.Default.Send<type>(message,token);
然后在第 1 页视图模型的构造函数中
Messenger.Default.Register<type>(this,token,Method);
这里的令牌应该与发件人令牌相同......
然后
void Method(type message)
{
button.content = message;
}
使用 Popup 显示您的 LongListSelector ,当 popupElement.IsOpen=false;
设置按钮内容与所需相同时,
如果您希望将内容更改为选定列表,请使用popupElement.IsOpen=false;
选择更改方法并在那里获取选定项目。
请记住在页面上使用选择更改方法,而不是在弹出子类中。