現在也不知道還有沒有同學做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 = 88;
zhangsan.Add(shuxue);
Courses yingyu = new Courses();
yingyu.Course = "英語";
yingyu.Score = 89;
zhangsan.Add(yingyu);
Courses yuwen = new Courses();
yuwen.Course = "國文";
yuwen.Score = 87;
zhangsan.Add(yuwen);
Courses dili = new Courses();
dili.Course = "地理";
dili.Score = 86;
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 = 90;
lisi.Add(shuxue);
Courses yingyu = new Courses();
yingyu.Course = "英語";
yingyu.Score = 95;
lisi.Add(yingyu);
Courses yuwen = new Courses();
yuwen.Course = "國文";
yuwen.Score = 98;
lisi.Add(yuwen);
Courses dili = new Courses();
dili.Course = "地理";
dili.Score = 97;
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 = 77;
wangwu.Add(shuxue);
Courses yingyu = new Courses();
yingyu.Course = "英語";
yingyu.Score = 78;
wangwu.Add(yingyu);
Courses yuwen = new Courses();
yuwen.Course = "國文";
yuwen.Score = 79;
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 = 90;
zhaoliu.Add(shuxue);
Courses yingyu = new Courses();
yingyu.Course = "英語";
yingyu.Score = 95;
zhaoliu.Add(yingyu);
Courses yuwen = new Courses();
yuwen.Course = "國文";
yuwen.Score = 98;
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 = 20,
Sex = "男",
CoursesLists = ZhangSan()
});
studentLists.Add(new Students()
{
Name = "李氏",
Age = 25,
Sex = "女",
CoursesLists = LiSi()
});
studentLists.Add(new Students()
{
Name = "王武",
Age = 35,
Sex = "男",
CoursesLists = WangWu()
});
studentLists.Add(new Students()
{
Name = "趙劉",
Age = 30,
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="470" Margin="10,0,0,0" VerticalAlignment="Top" Width="911">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn Header="姓名" Binding="{Binding Name}" IsReadOnly="True" Width="108"/>
<sdk:DataGridTextColumn Header="性别" Binding="{Binding Sex}" IsReadOnly="True" Width="108"/>
<sdk:DataGridTextColumn Header="年齡" Binding="{Binding Age}" IsReadOnly="True" Width="108"/>
<sdk:DataGridTemplateColumn Header="課程" IsReadOnly="True" Width="108" >
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ItemsControl ItemsSource="{Binding Path=CoursesLists}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border MinHeight="25" BorderThickness="0,0,0,1" Margin="0,0,0,-1" BorderBrush="#FFC9CACA">
<TextBlock Text="{Binding Path=Course}" VerticalAlignment="Center" Margin="5" HorizontalAlignment="Left" TextWrapping="NoWrap"/>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
<sdk:DataGridTemplateColumn Header="成績" IsReadOnly="True" Width="108" >
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ItemsControl ItemsSource="{Binding Path=CoursesLists}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border MinHeight="25" BorderThickness="0,0,0,1" Margin="0,0,0,-1" BorderBrush="#FFC9CACA">
<TextBlock Text="{Binding Path=Score}" VerticalAlignment="Center" Margin="5" HorizontalAlignment="Left" TextWrapping="NoWrap"/>
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
</sdk:DataGrid.Columns>
</sdk:DataGrid>
轉載于:https://www.cnblogs.com/HanTB/p/6807668.html