我的DataGrid
列CheckBox
。我希望按下一个按钮,所有选中的行都将被删除。 (我有删除的特殊功能)
我搜索如何执行此foreach
循环,我发现了这个 -
private void delete_Click(object sender, RoutedEventArgs e)
{
foreach (DataGridViewRow row in gridDepartment.Rows)
{
if (Convert.ToBoolean(row.Cells[CheckBoxColumn1.Name].Value) == true)
{
// get row number
remove(list.ElementAt(rowNumber));
}
}
}
但是,DataGridViewRow
,Rows
,CheckBoxColumn1
,Cells
和Value
仍为黑色。
我尝试添加using System.Windows.Forms;
并DataGridViewRow
改变了他的颜色,但所有MessageBox
和UserControl
都显示错误:
MessageBox是System.Windows.MessageBox之间的模糊引用 和System.Windows.Forms.MessageBox
这些是我的参考:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Controls.Primitives;
我该怎么办?谢谢。
答案 0 :(得分:0)
一旦迭代修改行集合听起来不是一个好计划。我假设你没有在这里利用数据绑定,所以请使用这篇文章中的建议(Delete Multiple rows from datagridview)。
关于引用只是通过
使MessageBox引用明确无效using MessageBox = System.Windows.MessageBox;
或明确地称之为
System.Windows.MessageBox.Show(...)
更新
问题不同。你有System.Windows.Controls.DataGrid,你正在尝试调整一些System.Windows.Forms.DataGridView代码。这两个是完全不同的,你的代码将无法正常工作。
您可以查看如何使用WPF DataGrid和数据绑定(例如http://wpftutorial.net/DataGrid.html)。 WPF强烈依赖于数据绑定,因此您通常不应访问CRUD操作的网格项(DataGrid.Items属性),并直接对DataGrid.ItemsSource执行相应的操作,如示例所示。