gpt4 book ai didi

c# - WPF和MVVM Light-通过Messenger关闭带有按钮的子窗口

转载 作者:行者123 更新时间:2023-12-03 10:29:00 25 4
gpt4 key购买 nike

在我的项目中,我有一个子窗口,可以一次打开其多个实例。它们接受一个对象的实例,显示有关该对象的信息,然后返回有关该对象的信息。现在它正在工作,但是我必须关闭窗口并在右上角显示“X”。我希望能够使用“接受”和“取消”按钮关闭窗口。如果我单击接受,我想让MVVM Light的Messenger发送回适当的数据(已经起作用)并关闭窗口。如果单击“取消”,则更改将被丢弃,并且窗口将关闭。不幸的是,我不知道使用按钮关闭窗口的一种好方法(并且对MVVM友好)。我已经研究过使用命令都无济于事,而且我不确定该怎么做。任何帮助,将不胜感激。我真的不知道在这种情况下要发布什么代码...

<Button x:Name="btnAccept"
Grid.Row="2"
Grid.Column="1"
Content="Accept"
Command="{Binding AcceptCommand}"/>
<Button x:Name="btnCancel"
Grid.Row="2"
Grid.Column="2"
Content="Cancel" />
    private void ExecuteAcceptCommand()
{
Messenger.Default.Send(Adv.Name);

//Close the window here somehow?
}

最佳答案

public class WindowClass
{
public WindowClass()
{
var messenger = ServiceLocator.Current.GetInstance<IMessenger>();
messenger.Register<CloseWindowMessage>(this, _ => Close());
}
}
CloseWindowMessage在哪里
public class CloseWindowMessage : MessageBase {}

关于c# - WPF和MVVM Light-通过Messenger关闭带有按钮的子窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17004673/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com