1.app.xaml
<Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="Skins/Generic.xaml" /> </ResourceDictionary.MergedDictionaries> <language:LocalizedStrings x:Key="LocalizedStrings" /> <local:MvvmViewModelLocator x:Key="Locator" /> </ResourceDictionary> </Application.Resources>
關於MergedDictionaries的用法可見:
解釋:http://blog.csdn.net/desertfishtoheaven/article/details/2252111
注意:http://www.cnblogs.com/beginor/archive/2009/10/14/1583035.html
Locator是用來指明那個xaml的datacontext綁定那個ViewModel。
2.MainPage.xaml
通過以下代碼指定資料繫結。
DataContext="{Binding MainVM, Source={StaticResource Locator}}"
指定資料顯示模板和觸發命令。
<phone:PhoneApplicationPage.Resources> <DataTemplate x:Key="TurnstileItemTemplate"> <Grid Background="{StaticResource PhoneAccentBrush}" Margin="10" Width="150" Height="150"> <StackPanel VerticalAlignment="Center" HorizontalAlignment="Center"> <Border BorderBrush="Gray"> <Image Width="62" Height="62" Source="{Binding IcoUrl}" Stretch="Fill" /> </Border> <TextBlock Text="{Binding MenuName}" Foreground="{StaticResource PhoneContrastBackgroundBrush}" Margin="3" FontSize="24" HorizontalAlignment="Center" VerticalAlignment="Center"/> </StackPanel> <i:Interaction.Triggers> <i:EventTrigger EventName="MouseLeftButtonDown"> <cmd:EventToCommand Command="{Binding MainVM.MenuCommand,Source={StaticResource Locator}}" CommandParameter="{Binding Type}"/> </i:EventTrigger> </i:Interaction.Triggers> </Grid> </DataTemplate> </phone:PhoneApplicationPage.Resources>