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; }
}
}
}
silverlight datagrid列宽自动填充
最新推荐文章于 2022-08-25 17:43:23 发布