silverlight datagrid列宽自动填充
来源:互联网 发布:crm软件开发 编辑:程序博客网 时间:2024/04/29 22:03
using System;using System.Collections.Generic;using System.Linq;using System.Net;using System.Windows;using System.Windows.Controls;using System.Windows.Documents;using System.Windows.Input;using System.Windows.Media;using System.Windows.Media.Animation;using System.Windows.Shapes;namespace SilverlightApplication90{ public partial class MainPage : UserControl { private DataGrid TestDataGrid = null; public MainPage() { InitializeComponent(); TestDataGrid = new DataGrid(); TestDataGrid.AutoGenerateColumns = true; TestDataGrid.SizeChanged += new SizeChangedEventHandler(TestDataGrid_SizeChanged); LayoutRoot.Children.Add(TestDataGrid); this.Loaded += new RoutedEventHandler(MainPage_Loaded); } /// <summary> /// 当DataGrid的Size改变时触发事件,使第二列的宽度填充DataGrid剩余的空间。 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void TestDataGrid_SizeChanged(object sender, SizeChangedEventArgs e) { double dataGridWidth = TestDataGrid.ActualWidth; double otherColumnsWidth = TestDataGrid.Columns[0].ActualWidth; double borderThickness = TestDataGrid.BorderThickness.Left + TestDataGrid.BorderThickness.Right; TestDataGrid.Columns[1].Width = new DataGridLength(dataGridWidth - otherColumnsWidth - borderThickness); } void MainPage_Loaded(object sender, RoutedEventArgs e) { List<Student> items = GetStudents(); TestDataGrid.ItemsSource = items; } /// <summary> /// 获取数据源 /// </summary> /// <returns></returns> private List<Student> GetStudents() { List<Student> items = new List<Student>(); for (int i = 0; i < 20; i++) { items.Add(new Student(i, "张三" + i)); } return items; } } public class Student { public Student() { } public Student(int _studentID, string _studentName) { this.StudentID = _studentID; this.StudentName = _studentName; } private int studentID; public int StudentID { get { return studentID; } set { studentID = value; } } private string studentName; public string StudentName { get { return studentName; } set { studentName = value; } } }}