前言
写之前先讲讲故事。之前一直从事.NET平台下的C/S开发,项目经验均来自Winform,一直仰慕WPF,但是WPF一直火不起来,甚至感觉都要跌入低谷了,但是自从Win10下推出了UWP应用,感觉WPF又在走上坡路了,因为UWP中也用了WPF类似的XAML,并继承了WPF的一些特性。做为一个.NET(cai)开发(niao)者同是时也一直关注了微软的发展的我,业余也了解并学习一些和.NET平台下相关的技术,WCF,WPF,ASP.NET MVC,UWP....最近也辞职去了一家创业型公司做web开发,趁着5.1继续学学UWP,有什么不正确或不妥的麻烦指正下。
前面的UWP汉堡菜单之MVVM模式实现也简单的应用了一下数据绑定,但是数据绑定并不是对所有的事件都可以用绑定例如下面演示的ListView的SelectionChanged事件就不能,按照惯例上代码。
XAML
<ListView Grid.Row="1" x:Name="mainListView" ItemsSource="{Binding MenuItems}" ItemTemplate="{StaticResource MenuItemDataTemplate}" SelectionChanged="{x:Bind vm.mainListView_SelectionChanged}" />
ViewModel
public async void mainListView_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
await new Windows.UI.Popups.MessageDialog("通过x:Bind绑定实现", "提示").ShowAsync();
}
前面指定DataContext都是在构造函数中指定的,今天重新看了下MvvmLight后发现也可以通过在XAML中指定。
XAML指定DataContext
<Page.DataContext>
<vm:MainViewModel />
</Page.DataContext>
vm是前面XAML导入的名空间别名
参考地址:
http://www.cnblogs.com/durow/p/4893195.html
http://www.cnblogs.com/gaoshang212/p/4534138.html
END