WPF——初识MVVM(二)
2012-04-10 11:32
190 查看
说明:该案例与前一个案例的来源一样,同样讲述的是MVVM,算是MVVM的进阶吧。在该案例中,涉及到数据访问,Prism等更为复杂的问题。首先来看界面设计,我在作者的基础上稍微做了改动,大致如下:
View XAML
Form:深入浅出WPF MVVM入门与提高(刘铁锰 wpfgeek@live.com)
View XAML
<Window x:Class="MVVMDemo2.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="{Binding Restaruant.Name,StringFormat=\{0\}-在线订餐}" Height="600" Width="1000" WindowStartupLocation="CenterScreen"> <Border BorderThickness="10" Name="borderWrap" Background="Orange" BorderBrush="GreenYellow" CornerRadius="10"> <Border BorderBrush="Orange" BorderThickness="3" CornerRadius="6" Background="Yellow"> <Grid x:Name="Root" Margin="4"> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <Border BorderBrush="Orange" BorderThickness="2" CornerRadius="6" Padding="4"> <StackPanel> <StackPanel Orientation="Horizontal"> <StackPanel.Effect> <DropShadowEffect Color="LightGray" /> </StackPanel.Effect> <TextBlock Text="欢迎光临-" FontSize="60" FontFamily="KaiTi" /> <TextBlock Text="{Binding Restaurant.Name}" FontSize="60" FontFamily="LiShu" /> </StackPanel> <StackPanel Orientation="Horizontal"> <TextBlock Text="餐厅地址:" FontSize="24" FontFamily="LiShu" /> <TextBlock Text="{Binding Restaurant.Address}" FontSize="24" FontFamily="LiShu" /> </StackPanel> <StackPanel Orientation="Horizontal"> <TextBlock Text="订餐电话:" FontSize="24" FontFamily="LiShu" /> <TextBlock Text="{Binding Restaurant.PhoneNumber}" FontSize="24" FontFamily="LiShu" /> </StackPanel> </StackPanel> </Border> <DataGrid AutoGenerateColumns="False" GridLinesVisibility="None" CanUserDeleteRows="False" CanUserAddRows="False" Margin="0,4" Grid.Row="1" FontSize="16" ItemsSource="{Binding DishMenu}"> <DataGrid.Columns> <DataGridTextColumn Header="菜品" Binding="{Binding Dish.Name}" Width="120" /> <DataGridTextColumn Header="种类" Binding="{Binding Dish.Category}" Width="120" /> <DataGridTextColumn Header="点评" Binding="{Binding Dish.Comment}" Width="120" /> <DataGridTextColumn Header="推荐分数" Binding="{Binding Dish.Score}" Width="120" /> <DataGridTemplateColumn Header="选中" SortMemberPath="IsSelected" Width="120"> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <CheckBox IsChecked="{Binding Path=IsSelected, UpdateSourceTrigger=PropertyChanged}" VerticalAlignment="Center" HorizontalAlignment="Center" Command="{Binding Path=DataContext.SelectMenuItemCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type DataGrid}}}" /> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> </DataGrid.Columns> </DataGrid> <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" Grid.Row="2"> <TextBlock Text="共计" VerticalAlignment="Center" /> <TextBox IsReadOnly="True" TextAlignment="Center" Width="120" Text="{Binding Count}" Margin="4,0" /> <Button Content="我要订餐" Height="24" Width="120" Command="{Binding PlaceOrderCommand}" /> </StackPanel> </Grid> </Border> </Border> </Window>
Form:深入浅出WPF MVVM入门与提高(刘铁锰 wpfgeek@live.com)
相关文章推荐
- 初识 WPF/Silverlight MVVM模式
- WPF中的MVVM模式(zhuan)
- WPF新手实践1:MVVM Light Toolkit(一、下载与安装)(转)
- WPF 如何在后台进行控件属性的绑定MVVM
- wpf mvvm使用问题集锦
- WPF MVVM CODE MAP
- [WPF] MVVM Plugin模式
- WPF MVVM设计模式的ViewModelBase和CommandBase代码
- MVVM模式和在WPF中的实现(二)数据绑定
- [WPF] MVVM的一点资源
- 【WPF】MVVM实践(上)
- 从PRISM开始学WPF(七)MVVM(三)事件聚合器EventAggregator?
- WPF MVVM模式学习
- 【我们一起写框架】MVVM的WPF框架(四)—DataGrid
- wpf silverlight mvvm mvc 种种
- WPF的MVVM
- WPF中的MVVM模式
- 电子书下载:Pro WPF and Silverlight MVVM: Effective Application Development with Model-View-ViewModel
- 初识MFC,WinForm,WPF,Q't
- [转载]Mvvm Light Toolkit for wpf/silverlight系列