gpt4 book ai didi

c# - ViewModel 中的消息框

转载 作者:行者123 更新时间:2023-11-30 17:06:23 25 4
gpt4 key购买 nike

我在我的应用程序中使用 mvvm light 工具包。我想使用我的 View 模型中的消息框。那么:我可以在 App.xaml.cs 中注册 Messenger.Default.Register() 吗?它必须为所有 View 模型注册。我不想在每个 ViewModel 中注册它。我可以在 Deactivated 或 Closing 事件中调用 Messenger.Default.Unregister() 吗?

谢谢

最佳答案

MVVM 和消息框的一种可能方法是简单的事件机制:

public class MessageBoxDisplayEventArgs : EventArgs
{
public string Title { get; set; }

// Other properties here...
}
...
public class ViewModelBase
{
public event EventHandler<MessageBoxDisplayEventArgs> MessageBoxDisplayRequested;

protected void OnMessageBoxDisplayRequest(string title)
{
if (this.MessageBoxDisplayRequested != null)
{
this.MessageBoxDisplayRequested(
this,
new MessageBoxDisplayEventArgs
{
Title = title
});
}
}
}
...
public class YourViewModel : ViewModelBase
{
private void SomeMethod()
{
this.OnMessageBoxDisplayRequest("hello world");
}
}
...
public class YourView
{
public YourView()
{
var vm = new YourViewModel();
this.Datacontext = vm;

vm.MessageBoxDisplayRequested += (sender, e) =>
{
// UI logic here
//MessageBox.Show(e.Title);
};
}
}

关于c# - ViewModel 中的消息框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15410392/

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