簡體   English   中英

Caliburn.Micro從UserControl調用視圖模型

[英]Caliburn.Micro Calling a viewmodel from UserControl

我有一個AppViewModel,它在窗口頂部包含一個菜單。 在AppViewModel構造上,我正在顯示一個UserControl。 在此UserControl中,我有一個按鈕,它調用另一個視圖模型(UserControl)。

這個想法是保留菜單並處理窗口的內容。 因此,我有1個窗口和2個UserControls。 這是對的?

如何從UserControl內部的按鈕調用另一個ViewModel? 或者,我必須從窗口調用它? 但是按鈕在UserControl內部!

我的代碼:

class AppViewModel : Conductor<object>
{
    private bool _MenuIsVisible;

    public bool MenuIsVisible
    {
        get { return _MenuIsVisible; }
        set
        {
            if (_MenuIsVisible != value)
            {
                _MenuIsVisible = value;
                NotifyOfPropertyChange(() => MenuIsVisible);
            }
        }
    }

    public AppViewModel()
    {
        MenuIsVisible = true;
        _ShowTutorial();
    }

    private void _ShowTutorial()
    {
        ActivateItem(new FirstViewModel());
    }

}



public class FirstViewModel : Screen
{
    protected override void OnActivate()
    {
        base.OnActivate();
    }
}

在FirstViewModel上,我有一個需要調用SecondViewModel的按鈕。

要從第一個ViewModel導航到第二個ViewModel,您可以在第一個ViewModel中使用如下方法:

public void NavigateToSecond()
{
    var conductor = this.Parent as IConductor;
    conductor.ActivateItem(new SecondViewModel());
}

父母是指將為您導航的售票員。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM