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; }        }    }}

原创粉丝点击