DataGrid找到名为

时间:2017-12-15 17:10:44

标签: c# wpf datagrid

我有一个带有Name-Value对的数据网格。我想找到Name等于某个字符串的所有行。

在WinForms中,我可以轻松地使用“for”循环并获取每个Row的列[0]值但在WPF中我不能这样做...

DataGrid.Rows[i].Cells[0].Value

然后我只是添加一些列表中的所有'i'值,其中Name等于需要,然后从datagrid中删除所有项目,除了它们。

但是如何迭代所有datagrid项/行并获取WPF中的每个列[0]值?

(我尝试使用foreach(DataGrid.Items中的DataGridRow),但它不是我需要的......

2 个答案:

答案 0 :(得分:1)

在WPF中,您将DataGrid ItemsSource属性绑定到ObservableCollection(或CollectionViewSource)并使用LINQ to Objects来查询,过滤或操纵您的基础集合,或者查看该集合的视图。您不能直接使用DataGrid行...

示例:

查看:

<GridView ItemsSource="{Binding BoCollection, Mode=TwoWay}"/>

ViewModel(实现INotifyPropertyChanged):

    private ObservableCollection<BO.MyObject> boCollection;
    public ObservableCollection<BO.MyObject> BoCollection
    {
        get { return boCollection; }
        set
        {
            folderEmails = value;
            NotifyPropertyChanged(m => m.BoCollection);             
        }
    }

答案 1 :(得分:-1)

没有MVVM,我就这样做了,它正在发挥作用!

        foreach (GridVariable gv in VariablesGrid.Items)
        {
            MessageBox.Show(gv.VariableName.ToString());
        }

它非常好用... GridVariable是我自己的类,我可以通过DataGrid.Items迭代我的类(如果我的类绑定到这个DataGrid)