作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一种验证用户登录名的方法。如果用户正确登录,我想调用两个 View 模型构造函数,以防万一用户登录。下面是我的示例代码。实现这一目标的最佳方法是什么?
发送 View 模型:
if (UserName == userName && Password == password)
{
ProjectManager.Instance.IsAdmin = true;
isLoggedIn = true;
IsLoggedIn = true;
ValidLoginImage();
LoginStatus = "Admin Logged In";
MessengerInstance.Send(true);
}
private void RegisterForMessages()
{
MessengerInstance.Register<bool>(this, UpdateEnabled);
}
private void UpdateEnabled(bool b)
{
IsLoggedIn = b;
}
最佳答案
由于您已经在使用MvvmLight,所以我只发送一条消息,其中包含一个 bool 值,该 bool 值调用 View 模型中的方法来对其进行更新。在需要更新的 View 模型中注册消息。然后它将等待“确定,我已登录” bool 值,然后运行一些更新IsEnabled属性的方法。将其放在需要更新的 View 模型中:
/// <summary>
/// Listen for messages from other ViewModels
/// </summary>
private void RegisterForMessages()
{
MessengerInstance.Register<bool>(this, UpdateMyStuff);
}
private void UpdateMyStuff(bool b)
{
IsEnabled=b;
}
MessengerInstance.Send(true); //or your IsLoggedIn property
关于c# - 如何在MVVM Light中调用另一个 View 模型构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29373828/
我是一名优秀的程序员,十分优秀!