Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.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
WPF MVVM无模式窗口如何停止打开多个窗口_Wpf_Window_Modeless - Fatal编程技术网

WPF MVVM无模式窗口如何停止打开多个窗口

WPF MVVM无模式窗口如何停止打开多个窗口,wpf,window,modeless,Wpf,Window,Modeless,我有一个MVVM应用程序,在其中一个名为RedView的视图中,有相应的RedViewModel 在RedView内部有一个按钮: <Button Content="OpenSmallWindow" Style="{DynamicResource appButton}" Grid.Column="1" x:Name="ShowSmallWindow" /> 在代码中,我可以在单击按钮时正确显示SmallWindowView。然而,每次按下按钮,每次点击都会出现一个新的小窗口,这不是

我有一个MVVM应用程序,在其中一个名为RedView的视图中,有相应的RedViewModel

在RedView内部有一个按钮:

<Button Content="OpenSmallWindow" Style="{DynamicResource appButton}" Grid.Column="1" x:Name="ShowSmallWindow" />
在代码中,我可以在单击按钮时正确显示SmallWindowView。然而,每次按下按钮,每次点击都会出现一个新的小窗口,这不是我想要的。我尝试了window.Owner(),但它出错了


可能是一些非常简单的东西,或者与MVVM Caliburn Micro app有关……对如何修复的代码有什么想法吗?

您正在创建一个新窗口,并在每次代码运行时显示它。如果只想打开一次,请在窗口的视图模型中添加一个字段,并仅在该字段为null时创建它。或者,在第一次单击按钮后禁用该按钮,使其无法打开多个窗口。因此,这类似于If语句,因为我只希望它打开一次窗口?是的,类似于
If(muhWindowIsOpen)返回;OpenChildWindow();muhWindowIsOpen=true
public void ShowSmallWindow()
        {
            Window window = new Window
            {
                Title = "SmallWindow",
                Content = new SmallWindowView(),
                SizeToContent = SizeToContent.WidthAndHeight,
                ResizeMode = ResizeMode.NoResize

            };
            window.Show();