【发布时间】:2016-05-30 06:35:21
【问题描述】:
我的目标是执行一些业务逻辑,然后导航到其他页面。 此外,我想将业务逻辑与导航分开,因为我认为根据 MVVM 模式,不应将此过程委托给 ModelView 逻辑。如果我错了,请纠正我。 为了实现这一点,我在 ViewModel 中为业务逻辑创建了一个命令:
SubmitOrderCommand = new DelegateCommand<string>(SubmitOrderExecute, SubmitOrderCanExecute);
...
private void SubmitOrderExecute(string obj)
{
var rnd = new Random();
int tableIndex = rnd.Next((int)base.Repository.Tables.Count());
base.Repository.Orders.Add(
new Order()
{
Complete = false,
Expedite = true,
SpecialRequests = SpecialRequestText,
...
Items = CurrentlySelectedMenuItems.ToList<MenuItem>()
});
this.CurrentlySelectedMenuItems.Clear();
//TODO:Have to navigate to other page after doing all these stuff
}
这是明显的 XAML 部分,没什么特别的
<Button Content="Submit Order" Command="{Binding SubmitOrderCommand}" />
问题是,在我的命令执行后如何导航到其他页面并严格遵循 MVVM 模式。我知道我可以使用 EventTrigger,但如果存在其他解决方案,请寻找...
【问题讨论】:
标签: c# windows mvvm windows-runtime windows-10-universal