Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/video/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 无法使用Caliburn显示对话框 公共类ShellViewModel:导体。。。 专用只读iWindows管理器\u windowManager; 私有只读惰性启动对话框; 公共ShellViewModel(iWindows管理器windowManager, 惰性启动(对话框) { _windowManager=windowManager; _startupDialog=startupDialog; } 加载视图时受保护的覆盖无效(对象视图){ base.OnViewLoaded(视图); if(_windowManager.ShowDialog(_startupDialog.Value)==true;//ex }_C#_.net_Wpf_Mvvm_Caliburn.micro - Fatal编程技术网

C# 无法使用Caliburn显示对话框 公共类ShellViewModel:导体。。。 专用只读iWindows管理器\u windowManager; 私有只读惰性启动对话框; 公共ShellViewModel(iWindows管理器windowManager, 惰性启动(对话框) { _windowManager=windowManager; _startupDialog=startupDialog; } 加载视图时受保护的覆盖无效(对象视图){ base.OnViewLoaded(视图); if(_windowManager.ShowDialog(_startupDialog.Value)==true;//ex }

C# 无法使用Caliburn显示对话框 公共类ShellViewModel:导体。。。 专用只读iWindows管理器\u windowManager; 私有只读惰性启动对话框; 公共ShellViewModel(iWindows管理器windowManager, 惰性启动(对话框) { _windowManager=windowManager; _startupDialog=startupDialog; } 加载视图时受保护的覆盖无效(对象视图){ base.OnViewLoaded(视图); if(_windowManager.ShowDialog(_startupDialog.Value)==true;//ex },c#,.net,wpf,mvvm,caliburn.micro,C#,.net,Wpf,Mvvm,Caliburn.micro,异常详细信息 无法将所有者属性设置为以前未显示的窗口 痕迹 在System.Windows.Window.set_Owner处(窗口值) 在Caliburn.Micro.WindowManager.EnsureWindow(对象模型、对象视图、布尔isDialog) 在Caliburn.Micro.WindowManager.CreateWindow(对象根模型、布尔isDialog、对象上下文、IDictionary2设置) 在Caliburn.Micro.WindowManager.Show

异常详细信息

无法将所有者属性设置为以前未显示的窗口

痕迹

在System.Windows.Window.set_Owner处(窗口值) 在Caliburn.Micro.WindowManager.EnsureWindow(对象模型、对象视图、布尔isDialog) 在Caliburn.Micro.WindowManager.CreateWindow(对象根模型、布尔isDialog、对象上下文、IDictionary
2设置)
在Caliburn.Micro.WindowManager.ShowDialog(对象根模型、对象上下文、IDictionary设置)
在XXXXX.ShellViewModel.OnViewLoaded处(对象视图)


这可能是什么原因?我还尝试调用了
OnViewReady
中的窗口管理器
ShowDialog
,但没有成功。

您如何初始化您的
ShellViewModel
?您没有放置[ImportingConstructor]?@AminBudianto只有在与MEF一起使用CM时才有必要使用它。@xvdiff aah好的,只是我自动假设MEF将与Caliburn一起使用,对不起。实际上这个错误确实发生在我身上,但一旦我将代码移动到OnViewLoaded,它就可以正常工作。也许你可以将代码移动到另一个视图模型。这就是我编写我的代码的方式。ShellViewModel will调用MainViewModel,我的代码在加载到MainViewModel中的OnView中。在ShellViewModel XAML中,代码隐藏:this.ActivateItem(MainViewModel);
public class ShellViewModel : Conductor...

    private readonly IWindowManager _windowManager;
    private readonly Lazy<StartupDialogViewModel> _startupDialog;

    public ShellViewModel(IWindowManager windowManager, 
        Lazy<StartupDialogViewModel> startupDialog)
    {
        _windowManager = windowManager;
        _startupDialog = startupDialog;
    }

    protected override void OnViewLoaded(object view) {

        base.OnViewLoaded(view);

        if(_windowManager.ShowDialog(_startupDialog.Value) == true; // ex

    }