1
我正在開發一個WPF項目,通常我使用resourcedictionary來組織樣式和顏色。當使用Expression Blend它會把視圖模型對象在這樣的資源:將視圖模型放入資源辭典中是否正確?
<local:VM x:Key="VM" d:IsDataSource="True"/>
,並設置這樣
<Window.DataContext><Binding Mode="OneWay" Source="{StaticResource VM}"/></Window.DataContext>
DataContext的,這是非常有用的使用source
得到命令或財產XAML在這樣的結合(尤其是在DataTemplate中)
{Binding XXCommand,Source={StaticResource VM}}
財產我可以把視圖模型對象ResourceDictionary中或者是最好把這個視圖特定在與viewmodel相關的每個視圖中?
而且,如果我把下面的風格在ResourceDictionary中我必須包括視圖模型對象,
<Style x:Key="MenuItemStyle" TargetType="MenuItem">
<Setter Property="Header" Value="{Binding Desc}"/>
<Setter Property="Icon" Value="{StaticResource IconImage}" />
<Setter Property="Command" Value="{Binding ChangeShowCommand,Source={StaticResource VM}}"/>
<Setter Property="CommandParameter" Value="{Binding}"/>
</Style>
它是一個不錯的列表,但我強烈反對作者對他對'Option 7:DataTemplate as views'和'Option 8'的看法。這些是我將ViewModel綁定到View的最常用方法,而不是使用Option3來顯示應用程序外殼的初始啓動。 – Rachel 2012-01-30 17:59:56