Silverlight的DataGrid合并单元格
现在也不知道还有没有同学做Silverlight开发了,我是一个Silverlight菜鸟,遇到问题也很难百度查到。就简单的记录一下这两天遇到的问题,并做了一个简单的小Demo,希望能够帮助到其他同学,并为自己翻看。
DataGrid合并单元格,实现结果如下:

Silverlight后台代码如下:
/// <summary>
/// 学生实体类
/// </summary>
public class Students
{
private string name;
/// <summary>
/// 学生姓名
/// </summary>
public string Name
{
get { return name; }
set { name = value; }
} private int age;
/// <summary>
/// 学生年龄
/// </summary>
public int Age
{
get { return age; }
set { age = value; }
}
private string sex;
/// <summary>
/// 学生性别
/// </summary>
public string Sex
{
get { return sex; }
set { sex = value; }
} private List<Courses> coursesLists = new List<Courses>();
/// <summary>
/// 课程列表
/// </summary>
public List<Courses> CoursesLists
{
get { return coursesLists; }
set { coursesLists = value; }
}
}
/// <summary>
/// 课程实体类
/// </summary>
public class Courses
{
private double score;
/// <summary>
/// 课程分数
/// </summary>
public double Score
{
get { return score; }
set { score = value; }
} private string course;
/// <summary>
/// 课程名称
/// </summary>
public string Course
{
get { return course; }
set { course = value; }
}
}
/// <summary>
/// 张山的课程列表
/// </summary>
/// <returns></returns>
private static List<Courses> ZhangSan()
{
List<Courses> zhangsan = new List<Courses>();
Courses shuxue = new Courses();
shuxue.Course = "数学";
shuxue.Score = ;
zhangsan.Add(shuxue); Courses yingyu = new Courses();
yingyu.Course = "英语";
yingyu.Score = ;
zhangsan.Add(yingyu); Courses yuwen = new Courses();
yuwen.Course = "语文";
yuwen.Score = ;
zhangsan.Add(yuwen); Courses dili = new Courses();
dili.Course = "地理";
dili.Score = ;
zhangsan.Add(dili); return zhangsan;
} /// <summary>
/// 李氏的课程列表
/// </summary>
/// <returns></returns>
private static List<Courses> LiSi()
{
List<Courses> lisi = new List<Courses>();
Courses shuxue = new Courses();
shuxue.Course = "数学";
shuxue.Score = ;
lisi.Add(shuxue); Courses yingyu = new Courses();
yingyu.Course = "英语";
yingyu.Score = ;
lisi.Add(yingyu); Courses yuwen = new Courses();
yuwen.Course = "语文";
yuwen.Score = ;
lisi.Add(yuwen); Courses dili = new Courses();
dili.Course = "地理";
dili.Score = ;
lisi.Add(dili); return lisi;
} /// <summary>
/// 王武的课程列表
/// </summary>
/// <returns></returns>
private static List<Courses> WangWu()
{
List<Courses> wangwu = new List<Courses>();
Courses shuxue = new Courses();
shuxue.Course = "数学";
shuxue.Score = ;
wangwu.Add(shuxue); Courses yingyu = new Courses();
yingyu.Course = "英语";
yingyu.Score = ;
wangwu.Add(yingyu); Courses yuwen = new Courses();
yuwen.Course = "语文";
yuwen.Score = ;
wangwu.Add(yuwen); return wangwu;
} /// <summary>
/// 赵刘的课程列表
/// </summary>
/// <returns></returns>
private static List<Courses> ZhaoLiu()
{
List<Courses> zhaoliu = new List<Courses>();
Courses shuxue = new Courses();
shuxue.Course = "数学";
shuxue.Score = ;
zhaoliu.Add(shuxue); Courses yingyu = new Courses();
yingyu.Course = "英语";
yingyu.Score = ;
zhaoliu.Add(yingyu); Courses yuwen = new Courses();
yuwen.Course = "语文";
yuwen.Score = ;
zhaoliu.Add(yuwen); return zhaoliu;
}
/// <summary>
/// 得到学生列表数据
/// </summary>
/// <returns></returns>
public static List<Students> GetStudentLists()
{
List<Students> studentLists = new List<Students>();
studentLists.Add(new Students()
{
Name = "张山",
Age = ,
Sex = "男",
CoursesLists = ZhangSan()
});
studentLists.Add(new Students()
{
Name = "李氏",
Age = ,
Sex = "女",
CoursesLists = LiSi()
});
studentLists.Add(new Students()
{
Name = "王武",
Age = ,
Sex = "男",
CoursesLists = WangWu()
});
studentLists.Add(new Students()
{
Name = "赵刘",
Age = ,
Sex = "女",
CoursesLists = ZhaoLiu()
}); return studentLists;
} /// <summary>
/// Silverlight页面初始化
/// </summary>
public DataGridMergeRows()
{
InitializeComponent();
dataGrid.ItemsSource = GetStudentLists();
}
以下是Silverlight UI页面代码
<sdk:DataGrid x:Name="dataGrid" HorizontalAlignment="Center" AutoGenerateColumns="False" Height="" Margin="10,0,0,0" VerticalAlignment="Top" Width="">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Header="姓名" Binding="{Binding Name}" IsReadOnly="True" Width=""/>
<sdk:DataGridTextColumn Header="性别" Binding="{Binding Sex}" IsReadOnly="True" Width=""/>
<sdk:DataGridTextColumn Header="年龄" Binding="{Binding Age}" IsReadOnly="True" Width=""/> <sdk:DataGridTemplateColumn Header="课程" IsReadOnly="True" Width="" >
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ItemsControl ItemsSource="{Binding Path=CoursesLists}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border MinHeight="" BorderThickness="0,0,0,1" Margin="0,0,0,-1" BorderBrush="#FFC9CACA">
<TextBlock Text="{Binding Path=Course}" VerticalAlignment="Center" Margin="" HorizontalAlignment="Left" TextWrapping="NoWrap"/>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn> <sdk:DataGridTemplateColumn Header="成绩" IsReadOnly="True" Width="" >
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ItemsControl ItemsSource="{Binding Path=CoursesLists}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border MinHeight="" BorderThickness="0,0,0,1" Margin="0,0,0,-1" BorderBrush="#FFC9CACA">
<TextBlock Text="{Binding Path=Score}" VerticalAlignment="Center" Margin="" HorizontalAlignment="Left" TextWrapping="NoWrap"/>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn> </sdk:DataGrid.Columns>
</sdk:DataGrid>
Silverlight的DataGrid合并单元格的更多相关文章
- JS实现EasyUI ,Datagrid,合并单元格功能
为了实现datagrid的合并单元格效果,datagrid的数据加载方式肯定是要写在JS文件内部的. 一:在JS内部添加Datagrid数据加载方法如下: $("#id").dat ...
- easyui datagrid 合并单元格
整理以前做的东西,这个合并单元格的问题再新浪博客也写过了..... 下面这段代码是列表数据 //载入排放系数管理报表数据 function LoadEmissionReportData() { //获 ...
- WPF DataGrid 合并单元格
在网上搜索wpf合并单元格,一直没搜索到,没办法,只能自己想办法搞定了.其实就是DataGrid套DataGrid,为了方便支持Column拖动,在合并的DataGridColumn那一列的Heade ...
- DataGrid合并单元格(wpf)
在网上搜索wpf合并单元格,一直没搜索到,没办法,只能自己想办法搞定了.其实就是DataGrid套DataGrid,为了方便支持Column拖动,在合并的DataGridColumn那一列的Heade ...
- C# DataGrid合并单元格
1.栏位枚举 private enum DataGridColumn { ROWNUM = , EMPID, EMPNAME, SEX, SALARY, ADRRESS, PHONE, TEL, PO ...
- 【原创】有关Silverlight中“DataGrid中单元格动态绑定ComboBox单击时数据项莫名被清除 ”的解决方案及思路。
今天上班遇到一个很古怪的问题,搞了半天愣是没找到原因.是这样的,在Datagrid中有绑定一个ComboBox列,其不包含在 model数据中,而是单独在LoadingRow事件中去 从数据库拿数据绑 ...
- 基于EasyUi的datagrid合并单元格JS写法
$('#dg').datagrid({ width: 'auto', height: 'auto', scrollbarSize: , queryParams: {}, url: 'kkkk', co ...
- Merge Cells for DataGrid 合并单元格
只适合不分页的固定行列的表格 <script type="text/javascript"> function onLoadSuccess(data){ var mer ...
- JQuery EasyUI DataGrid动态合并单元格
/** * EasyUI DataGrid根据字段动态合并单元格 * @param fldList 要合并table的id * @param fldList ...
随机推荐
- 对象作为 map 的 key 时,需要重写 equals 方法和 hashCode 方法
对象作为 map 的 key 时,需要重写 hashCode 和 equals方法 如果没有重写 hashCode 方法,那么下面的代码示例会输出 null 我们首先定义一个对象:BmapPoint, ...
- php与mysql的常规使用
<?php header("Content-type:text/html;charset=GBK"); /* 通常,php网页中完成有关数据库的操作,首先,需要如下代码: $ ...
- 单发邮箱 群发邮箱 程序 Email winform
using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...
- Unity 3D Framework Designing(2)——使用中介者模式解耦ViewModel之间通信
当你开发一个客户端应用程序的时候,往往一个单页会包含很多子模块,在不同的平台下,这些子模块又被叫成子View(视图),或者子Component(组件).越是复杂的页面,被切割出来的子模块就越多,子模块 ...
- PyQt QListWidget修改列表项item的行高
百度,谷歌之后都说用setHintSize(self,QCore.QSize(width,height)),然并卵,后来用qss修改就可以了,具体用法如下 # emaillist是我给QListWid ...
- CSS写动态下拉菜单 -----2017-03-27
动态网站第一步:动态下拉菜单 关键点: overflow:hidden max-height xx:hover {} 设置当鼠标移上之后的效果 transition: 设置过度时间 cursor: ...
- 【转】AS3画板工具类,可直接套用
原文链接:http://bbs.9ria.com/thread-212711-1-16.html 今天项目需求做一个画板,要有橡皮擦.自己懒不想写,在网上搜了半天都是习作,没有拿来就能用的又不爱看.只 ...
- servlet学习总结(一)——初识Servlet
Servlet工作过程 当客户端向web服务器发送servlet请求时,web服务器首先检查是否已经加载并创建了servlet实例对象.如果没有会装载并创建该Servlet的一个实例对象.然后调用se ...
- js按值传递和按引用传递
摘要:js的数据类型有种划分方式为 原始数据类型和 引用数据类型. 原始数据类型 存储在栈(stack)中的简单数据段,也就是说,它们的值直接存储在变量访问的位置.栈区包括了 变量的标识符和变量的值. ...
- activiti 一个流程的运转步骤 以请假流程为例
---为了加深对activiti的理解记忆,对自己做的一个流程进行自述.加强记忆 请假实例 一.设计请假的流程图以及流程文件,完善对应数据项,比如用户信息,请假单信息 --请假单 --流程图 --流程 ...