MVVM程序分析
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>