gpt4 book ai didi

wpf - 其他 View 模型中的某些内容发生更改时,WPF MVVM更新 View 模型中的属性

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

Language中的MyVM1属性更改时,我需要更新MyVM2Language中的LanguageVM属性(参见图片)。

最佳答案

您有很多方法可以完成此操作。您可以在语言提供程序类中定义 event 。如果只能有一个 LanguageProvider 对象,则可以将事件标记为静态,因此您无需将对 LanguageProvider 的引用传递给 YoursVM 类。

public static class LanguageProvider
{
private Language currentLanguage = Language.DefaultLanguage;
public delegate void LanguageChangedEventHandler(object sender, LanguageChangedEventArgs e);

public static event LanguageChangedEventHandler LanguageChanged;
public static void SetLanguage(string langId)
{
var oldLang = currentLanguage;
currentLanguage = new Language(langId);
if (LanguageChangedEventHandler != null)
{
LanguageChangedEventHandler(null, new LanguageChangedEventArgs(oldLangId:oldLang, newLang:currentLanguage));
}
}
}

在您的 BaseVM 基本构造函数中:
public BaseVM()
{
...
LanguageProvider.LanguageChanged += OnLanguageChanged;
...
}

private void OnLanguageChanged(object sender, LanguageChangedEventArgs e)
{
this.Language = e.NewValue;
}

关于wpf - 其他 View 模型中的某些内容发生更改时,WPF MVVM更新 View 模型中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22268607/

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