SilverLight框架初探-View
2010-03-17 01:16
246 查看
前面分别实现了ViewModel与Riaservice,接下来让我们看看如果实现与View的绑定,如下:
ProductionView.xaml的代码如下:
<UserControl x:Class="Mvvm.Client.Views.ProductionView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:vm="clr-namespace:Mvvm.Client.ViewModels.ViewModels;assembly=Mvvm.Client.ViewModels"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400" xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data">
<!--添加ProductionViewModel引用-->
<UserControl.Resources>
<vm:ProductionViewModel x:Name="productionViewModel"/>
</UserControl.Resources>
<!--通过DataContext与Grid绑定-->
<Grid x:Name="LayoutRoot" DataContext="{Binding Source={StaticResource productionViewModel}}" MinHeight="100">
<!--添加GdataGrid与DataPager控件-->
<data:DataGrid AutoGenerateColumns="True" Name="dataGrid1" MinHeight="20" MinWidth="100" Grid.Row="4" />
<data:DataPager Grid.Row="5" Name="dataPager1" />
</Grid>
</UserControl>
在这里,控件与数据源的绑定放在了其*.cs文件中,这样更方便于我们进行相关操作,代码如下:
public partial class ProductionView : UserControl
{
public ProductionView()
{
InitializeComponent();
BindingGrid();
}
void BindingGrid()
{
this.productionViewModel = new ViewModels.ViewModels.ProductionViewModel();
base.DataContext = this.productionViewModel;
this.productionViewModel.QueryCommand.Execute(null);
// Wrap the itemList in a PagedCollectionView for paging functionality
PagedCollectionView itemListView = new PagedCollectionView(this.productionViewModel.ListProduction);
if (itemListView != null)
{
dataGrid1.ItemsSource = itemListView;
dataPager1.Source = itemListView;
dataPager1.PageSize = 20;
dataPager1.DataContext = this.dataPager1;
}
}
}
这样,我们就能够将View与ViewModel关联起来。
以MVVM这么模式来设计开发Silverlight,真正意义上达到了我们要实现页面与逻辑分离的目的。上面例子中,我们的View也可以用WPF来实现。
ProductionView.xaml的代码如下:
<UserControl x:Class="Mvvm.Client.Views.ProductionView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:vm="clr-namespace:Mvvm.Client.ViewModels.ViewModels;assembly=Mvvm.Client.ViewModels"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="400" xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data">
<!--添加ProductionViewModel引用-->
<UserControl.Resources>
<vm:ProductionViewModel x:Name="productionViewModel"/>
</UserControl.Resources>
<!--通过DataContext与Grid绑定-->
<Grid x:Name="LayoutRoot" DataContext="{Binding Source={StaticResource productionViewModel}}" MinHeight="100">
<!--添加GdataGrid与DataPager控件-->
<data:DataGrid AutoGenerateColumns="True" Name="dataGrid1" MinHeight="20" MinWidth="100" Grid.Row="4" />
<data:DataPager Grid.Row="5" Name="dataPager1" />
</Grid>
</UserControl>
在这里,控件与数据源的绑定放在了其*.cs文件中,这样更方便于我们进行相关操作,代码如下:
public partial class ProductionView : UserControl
{
public ProductionView()
{
InitializeComponent();
BindingGrid();
}
void BindingGrid()
{
this.productionViewModel = new ViewModels.ViewModels.ProductionViewModel();
base.DataContext = this.productionViewModel;
this.productionViewModel.QueryCommand.Execute(null);
// Wrap the itemList in a PagedCollectionView for paging functionality
PagedCollectionView itemListView = new PagedCollectionView(this.productionViewModel.ListProduction);
if (itemListView != null)
{
dataGrid1.ItemsSource = itemListView;
dataPager1.Source = itemListView;
dataPager1.PageSize = 20;
dataPager1.DataContext = this.dataPager1;
}
}
}
这样,我们就能够将View与ViewModel关联起来。
以MVVM这么模式来设计开发Silverlight,真正意义上达到了我们要实现页面与逻辑分离的目的。上面例子中,我们的View也可以用WPF来实现。
相关文章推荐
- SilverLight框架初探-ViewModel
- SilverLight框架初探
- 【学习笔记】Silverlight框架:Jounce(7)——ViewRouter和ViewModelRouter
- SilverLight框架初探-RiaService
- fragment+viewpager和横向滑动框架
- android app主题UI界面框架搭建 tablayout+Viewpager+fragment 导航栏滑动和点击切换界面
- Android高级之xUtils框架(一):ViewUtils的用法
- Mvvm Light Toolkit for WPF/Silverlight系列之搭建mvvmlight开发框架
- Android自定义View之一:初探实例
- UIkit框架-基础视图-UIImageView、UIImage-图片
- ASP.NET ViewState 初探
- UIKit框架-高级视图-UITableView-表格控件
- 第二篇--viewpager+fragment打造应用框架
- QGraphicsView 框架学习(一)、图形元素的编辑
- Instagram/IGListKit 实践谈(UICollectionView框架)
- Android-ViewPagerIndicator框架使用——使用概要
- Android自定义View之二:Matrix初探(懒了,使用拿来主义了)
- Silverlight游戏开发初探(上篇)
- Silverlight游戏开发初探(下篇)
- 关于使用xUtils框架的注解方式绑定View