C# 使用MVVM更改应用程序主题
我是MVVM的新手,所以请温柔一点。我刚刚学习了如何使用MVVM将基本“模型”或数据绑定到WPF中的视图。我现在正在着手开发一个新的应用程序,我想使用MVVM的第一件事是促进应用程序新颜色主题的快速更改/开发。我试图根据我在网上读到的一些基本教程来做这件事,但是我对实现我想要的最好的方法感到困惑 我见过,但这对我没有帮助;相反,这会引发更多的问题。做我想做的事最好的方法是什么?我如何使用MVVM实现它C# 使用MVVM更改应用程序主题,c#,wpf,mvvm,themes,C#,Wpf,Mvvm,Themes,我是MVVM的新手,所以请温柔一点。我刚刚学习了如何使用MVVM将基本“模型”或数据绑定到WPF中的视图。我现在正在着手开发一个新的应用程序,我想使用MVVM的第一件事是促进应用程序新颜色主题的快速更改/开发。我试图根据我在网上读到的一些基本教程来做这件事,但是我对实现我想要的最好的方法感到困惑 我见过,但这对我没有帮助;相反,这会引发更多的问题。做我想做的事最好的方法是什么?我如何使用MVVM实现它 如果有人能提供一个基本的大纲,我将不胜感激 拥有MVVM并不意味着你就没有代码了。事实上,在V
如果有人能提供一个基本的大纲,我将不胜感激 拥有MVVM并不意味着你就没有代码了。事实上,在ViewModel中只包含与UI相关的关注点可能是一种代码味道。为什么不让UI做它自己的事情呢
public interface IMainView {
void ChangeTheme(string themeName);
}
public class ViewModel {
public IMainView View { get; } //get the view somehow
public ICommand ChangeThemeCommand { get; }
private void OnChangeThemeCommandExecute(string themeName) {
View.ChangeTheme(themeName);
}
}
使用这种方法,您可以测试命令的调用,并将其委托给视图(如果值得测试的话)。您仍然有分离的关注点和一些可测试性。您可以像其他WPF应用程序一样使用codebehind进行测试。MVVM!=没有代码隐藏。无论如何,您的ViewModel不应该与主题有太多关系。这就是UI。非常感谢您在这里的时间。我对商业开发比较陌生,对WPF也比较陌生;这有很大帮助。再次感谢。