浅析Silvelight中显示多重数据模型集合

Silvelight中显示多重数据模型集合,在本例中可以对不同的数据模型集合数据信息的更新、删除。***的效果图也分为两种不同的情况。

网站建设哪家好,找创新互联建站!专注于网页设计、网站建设、微信开发、小程序设计、集团企业网站建设等服务项目。为回馈新老客户创新互联还提供了泰州免费建站欢迎大家使用!

在使用DataForm进行单个数据的浏览时,有时候为了节省空间,我们可能需要在一个DataForm的数据源中放置由不同的数据模型集合所组成的数据集合。幸运的是,Silverlight的DataForm组件的ItemsSource属性支持这种做法。下面我就为大家介绍如何操作。

实例说明

在这个例子中,我建立了名为Employee和Delivery的数据模型。为了对比,我使用了一个DataGrid组件,使它与DataForm使用相同的数据源。大家可以看看结果究竟有何不同。(见最终效果图)

实例引申

该实例可以用作不同的数据模型集合数据信息的更新、删除(可惜难以进行添加操作)。在为多重数据模型集合数据源进行各个数据模型的信息的添加时,记录数据范围。然后在进行更新或删除时,根据这个范围将多重数据模型集合数据源中object对象转换成对应的数据模型后,再进行处理即可。

实例代码

详细的说明将在代码中给出。

DataModel.cs数据模型代码:

 
 
 
 
  1. using System;  
  2. namespace SilverlightClient  
  3. {  
  4.     public class Employee  
  5.     {  
  6.        public int EmployeeID { get; set; }  
  7.         public string EmployeeName { get; set; }  
  8.         public int EmployeeAge { get; set; }  
  9.     }  
  10.     public class Delivery  
  11.     {  
  12.         public int DeliveryID { get; set; }  
  13.         public string DeliveryFrom { get; set; }  
  14.         public string DeliveryTo { get; set; }  
  15.     }  

MainPage.xaml文件代码:

 
 
 
 
  1. xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"   
  2.    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
  3. xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"   
  4.     mc:Ignorable="d" xmlns:dataFormToolkit="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data.DataForm.Toolkit" xmlns:data="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data" x:Class="SilverlightClient.MainPage" 
  5.     d:DesignWidth="320" d:DesignHeight="380"> 
  6.      
  7.          
  8.          
  9.          
  10.      
  11.  
  12. MainPage.xaml.cs文件代码:  
  13. using System;  
  14. using System.Collections.Generic;  
  15. using System.Collections.ObjectModel;  
  16. using System.Linq;  
  17. using System.Net;  
  18. using System.Windows;  
  19. using System.Windows.Controls;  
  20. using System.Windows.Documents;  
  21. using System.Windows.Input;  
  22. using System.Windows.Media;  
  23. using System.Windows.Media.Animation;  
  24. using System.Windows.Shapes;  
  25. namespace SilverlightClient  
  26. {  
  27.     public partial class MainPage : UserControl  
  28.     {  
  29.         public MainPage()  
  30.        {  
  31.             InitializeComponent();  
  32.             this.Loaded += new RoutedEventHandler(MainPage_Loaded);  
  33.         }  
  34.        void MainPage_Loaded(object sender, RoutedEventArgs e)  
  35.         {  
  36.             dfDataModel.ItemsSource = GetHeterogeneousData();//提供数据源  
  37.             dgDataModel.ItemsSource = GetHeterogeneousData();//用作对比  
  38.         }  
  39.         private List GetEmployees()//生成雇员信息  
  40.         {  
  41.             List returnedValue = new List();  
  42.             returnedValue.Add(new Employee() { EmployeeID = 1, EmployeeName = "张三", EmployeeAge = 23 });  
  43.             returnedValue.Add(new Employee() { EmployeeID = 2, EmployeeName = "李四", EmployeeAge = 24 });  
  44.             returnedValue.Add(new Employee() { EmployeeID = 3, EmployeeName = "王五", EmployeeAge = 25 });  
  45.             return returnedValue;  
  46.         }  
  47.         private List GetDelivery()//生成递送信息  
  48.        {  
  49.             List returnedValue = new List();  
  50.             returnedValue.Add(new Delivery() { DeliveryID = 1, DeliveryFrom = "南京", DeliveryTo = "宁波" });  
  51.             returnedValue.Add(new Delivery() { DeliveryID = 2, DeliveryFrom = "镇江", DeliveryTo = "苏州" });  
  52.             return returnedValue;  
  53.         }  
  54.         private ObservableCollection GetHeterogeneousData()//为DataForm提供多重数据模型集合的数据源  
  55.         {  
  56.             ObservableCollection returnedValue = new ObservableCollection();  
  57.             GetEmployees().ForEach( x => returnedValue.Add(x));//向集合数据源中添加Employee数据信息  
  58.             GetDelivery().ForEach(x => returnedValue.Add(x));//向集合数据源中添加Delivery数据信息  
  59.             return returnedValue;  
  60.        }  
  61.     }  
  62. 最终效果图

    当前标题:浅析Silvelight中显示多重数据模型集合
    标题路径:http://www.shufengxianlan.com/qtweb/news23/235223.html

    网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

    广告

    声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联