浅析Silvelight中显示多重数据模型集合
创始人
2024-06-06 18:20:20
0
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. 最终效果图

    最终效果图1
    最终效果图2

    原文标题:有关DataForm组件的研究_显示多重数据模型集合——Silverlight学习笔记[24]

    链接:http://www.cnblogs.com/Kinglee/archive/2009/09/09/1563547.html

    【编辑推荐】

    1. Office 2010将使用Silverlight改善用户体验
    2. 微软.NET平台主管谈Silverlight企业级开发
    3. Flash与Silverlight多领域实测对比
    4. 微软宣称Silverlight装机量超过三亿
    5. 图解Silverlight 3的7个新功能

    相关内容

    热门资讯

    如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
    如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
    施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
    20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
    德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
    为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
    《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
    2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...