Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用MVVM在代码中动态设置资源_C#_Wpf_Mvvm - Fatal编程技术网

C# 使用MVVM在代码中动态设置资源

C# 使用MVVM在代码中动态设置资源,c#,wpf,mvvm,C#,Wpf,Mvvm,因此,基本上我正在尝试通过使用MVVM模式的代码设置DynamicSource 这些是我的资源: <SolidColorBrush x:Key="UserGroupUserBrush" Color="Transparent"/> <SolidColorBrush x:Key="UserGroupSetterBrush" Color="Yellow"/> <SolidColorBrush x:Key="UserGrougShiftLeaderBrush" Color=

因此,基本上我正在尝试通过使用MVVM模式的代码设置DynamicSource

这些是我的资源:

<SolidColorBrush x:Key="UserGroupUserBrush" Color="Transparent"/>
<SolidColorBrush x:Key="UserGroupSetterBrush" Color="Yellow"/>
<SolidColorBrush x:Key="UserGrougShiftLeaderBrush" Color="{StaticResource ZFBlueColor}"/>
<SolidColorBrush x:Key="UserGroupTeamLeaderBrush" Color="Black"/>

在这里,我要设置资源:

<Ellipse DataContext="{vw:AdapterBinding UserManagementAdapter}" Fill="{DynamicResource UserGroupSetterBrush}" Height="20" Width="20" Margin="0,0,5,0"/>

假设我想在代码中将资源“UserGroupSetterBrush”更改为“UserGroupUserBrush”。使用MVVM模式执行此操作的正确方法是什么

使用MVVM模式执行此操作的正确方法是什么

在某个视图或某个视图相关类的代码隐藏中。资源和画笔只是视图的一部分。视图模型根本不知道也不关心这些,因此在MVVM和非MVVM应用程序之间使用或设置资源基本上没有区别

视图模型不应更改
椭圆
填充
属性。它可能会更改
Fill
属性绑定到的源属性,但不应使用
DynamicResource
设置该属性,而应将其绑定到视图模型的
Brush
源属性,并在视图模型中设置该属性