2017-07-18 63 views
1

所以基本上我想要做的是通過使用MVVM模式的代碼設置DynamicResource。使用MVVM動態地在代碼中設置資源

這些都是我的資源:

<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模式執行此操作的正確方法是什麼?

回答

2

使用MVVM模式執行此操作的正確方法是什麼?

在某些視圖或某些視圖相關類的代碼隱藏中。資源和畫筆只是視圖的一部分。視圖模型根本不知道也不關心這些,所以在MVVM和非MVVM應用程序之間使用或設置資源基本上沒有區別。

視圖模型不應該更改EllipseFill屬性。它可能會更改Fill屬性綁定到的源屬性,但不應使用DynamicResource設置該屬性,而應將其綁定到視圖模型的源屬性並在視圖模型中設置此屬性。

相關問題