dataGrid上的reference和foreach循环

时间:2015-05-24 13:26:59

标签: c# wpf datagrid

我的DataGridCheckBox。我希望按下一个按钮,所有选中的行都将被删除。 (我有删除的特殊功能) 我搜索如何执行此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));
        }
    }
}

但是,DataGridViewRowRowsCheckBoxColumn1CellsValue仍为黑色。 我尝试添加using System.Windows.Forms;DataGridViewRow改变了他的颜色,但所有MessageBoxUserControl都显示错误:

  

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;

我该怎么办?谢谢。

1 个答案:

答案 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执行相应的操作,如示例所示。