如何在ViewModel中获取UserControl的父级

时间:2013-08-01 07:59:00

标签: c# mvvm windows-8 appsettings

我想在我的Windows应用商店应用中创建帮助。我正在使用MVVM模式。我找到了这个: http://msdn.microsoft.com/en-us/library/windows/apps/jj649425.aspx

我已完成控制XAML,但我不知道如何执行此操作:

private void MySettingsBackClicked(object sender, RoutedEventArgs e)
    {
        if (this.Parent.GetType() == typeof(Popup))
        {
            ((Popup)this.Parent).IsOpen = false;
        }
        SettingsPane.Show();
    }

以mvvm方式。

1 个答案:

答案 0 :(得分:1)

这是 MVVM 模式的常见混淆, Page.xaml.cs 中应该没有代码,但事实并非如此。实际上MVVM模式意味着您的 UI 的逻辑部分必须位于该页面的 ViewModel 中。

因此,例如,如果您在点击某些Control时设置某些控件的可见性,那么在此模式下就没有错误。如果您想发送一些可以使用的通知或消息,那就是信使类在那里的原因。

所以在你的情况下,一切都是完美的,所以只需使用 MVVM 信使类,并在需要时发送父控件的信息。