189 8069 5689

浅析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://cdxtjz.cn/article/djcsipd.html

    联系我们

    您好HELLO!
    感谢您来到成都网站建设公司,若您有合作意向,请您为我们留言或使用以下方式联系我们, 我们将尽快给你回复,并为您提供真诚的设计服务,谢谢。
    • 电话:028- 86922220 18980695689
    • 商务合作邮箱:631063699@qq.com
    • 合作QQ: 532337155
    • 成都网站设计地址:成都市青羊区锣锅巷31号五金站写字楼6楼

    小谭建站工作室

    成都小谭网站建设公司拥有多年以上互联网从业经验的团队,始终保持务实的风格,以"帮助客户成功"为已任,专注于提供对客户有价值的服务。 我们已为众企业及上市公司提供专业的网站建设服务。我们不只是一家网站建设的网络公司;我们对营销、技术、管理都有自己独特见解,小谭建站采取“创意+综合+营销”一体化的方式为您提供更专业的服务!

    小谭观点

    相对传统的成都网站建设公司而言,小谭是互联网中的网站品牌策划,我们精于企业品牌与互联网相结合的整体战略服务。
    我们始终认为,网站必须注入企业基因,真正使网站成为企业vi的一部分,让整个网站品牌策划体系变的深入而持久。