所以基本上我要做的是使用MVVM模式通过代码设置DynamicResource。
这些是我的资源:
<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"/>
所以我想说要改变资源&#34; UserGroupSetterBrush&#34; to&#34; UserGroupUserBrush&#34;在我的代码中。使用MVVM模式执行此操作的正确方法是什么?
答案 0 :(得分:2)
使用MVVM模式执行此操作的正确方法是什么?
在某些视图或某些与视图相关的类的代码隐藏中。资源和画笔仅是视图的一部分。视图模型根本不知道也不关心这些,因此在MVVM和非MVVM应用程序之间使用或设置资源基本上没有区别。
视图模型不应更改Ellipse
的{{1}}属性。它可能会更改Fill
属性绑定的源属性,但是您不应该使用DynamicResource
设置属性,而是将其绑定到Brush
视图模型的source属性,并在视图模型中设置它。