C#MVVM在NavigateTo和Init上跨Windows Phone 8

本文关键字:Windows Phone 上跨 Init NavigateTo C#MVVM | 更新日期: 2023-09-27 18:23:35

我在C#中得到了一个项目,Windows Phone 8 MVVM交叉。

我有一个ViewModel和View偏离了路线。在ViewModel中,我有一个从另一个ViewModel获取参数的Init方法。在视图中,我编写了一个onNavigatoTo和NavigateFrom事件(overriden)来保存和加载ViewModel State。

但是,对于OnNavigateTo事件,Init方法不会执行。怎么了?

C#MVVM在NavigateTo和Init上跨Windows Phone 8

如果希望Init方法工作,请不要覆盖NavigatedTo。相反,创建一个加载的事件并执行以下操作:

    #region Properties
    public ViewModel ViewModel
    {
        get { return (ViewModel)ViewModel; }
        set { base.ViewModel = value; }
    }
    #endregion
    #region Constructor
    public LoginView()
    {
        InitializeComponent();
        Loaded += View_Loaded;
    }
    #endregion
    #region Events
    private void View_Loaded(object sender, RoutedEventArgs e)
    {
        ViewModel.SomeEventOrProperty //blah you get it
    }
    #endregion