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>

浙公网安备 33010602011771号