单击按钮时,我试图在不同页面的文本框中显示组合框中的选项。我想使用NavigationService,但我不确定这是不是正确的方式。在这部分代码中,我得到了正确的值,并且我正在使用messagebox进行测试,这是有效的。
private void Button_Click(object sender, RoutedEventArgs e)
{
itemSelection = SubItemBox.Text;
NavigationService.Navigate(
new Uri("/Display.xaml?Message=" + itemSelection,
UriKind.Relative)
);
MessageBox.Show(itemSelection);
}
我有一个问题想弄清楚接下来要去哪里,我无法弄清楚如何在Display.xaml中显示itemSelection
namespace CateringDisplay
{
public partial class Display : Page
{
string itemSelection;
public Display()
{
InitializeComponent();
}
private void Page_Loaded(object sender, RoutedEventArgs e)
{
}
}
}
我正在努力学习WPF
,我们将不胜感激答案 0 :(得分:0)
您可以尝试使用事件聚合器(https://msdn.microsoft.com/en-us/library/ff921122.aspx):
,而不是使用导航您定义一个事件:
public class SelectionChangedEvent : PubSubEvent<string> { }
您订阅了显示页面中的活动
public partial class Display : Page
{
string itemSelection;
public Display()
{
InitializeComponent();
IEventAggregator eventAggregator = Locator.GetInstance<IEventAggregator>();
eventAggregator.GetEvent<SelectionChangedEvent>().Subscribe(OnSelectionChanged);
}
private void OnSelectionChanged(string obj)
{
itemSelection = obj;
}
private void Page_Loaded(object sender, RoutedEventArgs e)
{
}
}
事件处理程序使用事件有效内容更新项目选择。最后,您从按钮单击事件处理程序激活事件:
private void Button_Click(object sender, RoutedEventArgs e)
{
itemSelection = SubItemBox.Text;
IEventAggregator eventAggregator = Locator.GetInstance<IEventAggregator>();
eventAggregator.GetEvent<SelectionChangedEvent>().Publish(itemSelection);
MessageBox.Show(itemSelection);
}
希望它有所帮助。