您的位置:首页 > 其它

Wpf DataGrid 数据绑定 排序 删除

2010-11-20 16:23 603 查看
初学wpf今天做一个菜鸟级别实例,只适合菜鸟.
先上图

代码

//全选按钮事件
private void cBox_All_Click(object sender, RoutedEventArgs e)
{
CheckBox cb = sender as CheckBox;
LStudentData.FindAll(p =>
{
p.student.IsChecked = cb.IsChecked.Value;
p.Count = stuList.Count;
return true; });
LStudentData.FindAll(p => { p.IsCheckedCount = stuList.Count(t => t.IsChecked == true); return true; });
}

//DataGrid SelectionChanged
private void DgQuestion_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (DgQuestion.SelectedItems.Count > 1)
{
foreach (var item in e.AddedItems)
{
if (item is StudentData)
{
bool isChecked = (item as StudentData).student.IsChecked;
(item as StudentData).student.IsChecked = true;
}
}
}
else
{
if (e.AddedItems.Count ==1)
{
if (e.AddedItems[0] is StudentData)
{
bool isChecked = (e.AddedItems[0] as StudentData).student.IsChecked;
if (isChecked)
(e.AddedItems[0] as StudentData).student.IsChecked = false;
else
(e.AddedItems[0] as StudentData).student.IsChecked = true;
}
}
}
LStudentData.FindAll(p => { p.IsCheckedCount = stuList.Count(t => t.IsChecked == true); return true; });
}
//删除选中按钮事件
private void btn_delete_Click(object sender, RoutedEventArgs e)
{
LStudentData = LStudentData.FindAll(p => { if (p.student.IsChecked) { p.student.IsChecked = false; return p.student.Id!=p.student.Id;} return true; });
LStudentData.FindAll(p => { p.Count = LStudentData.Count; return true; });
LStudentData.FindAll(p => { p.IsCheckedCount = LStudentData.Count(t => t.student.IsChecked == true); return true; });
if (LStudentData.Count == 0)
Tb_SelectCount.Text = "0";
Grid_Data.DataContext = LStudentData;
}
}


写博客是个很好的习惯,我会慢慢的坚持下去.如以上代码能更好的改进,或存在问题,请留言.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: