我有一个带有Name-Value对的数据网格。我想找到Name等于某个字符串的所有行。
在WinForms中,我可以轻松地使用“for”循环并获取每个Row的列[0]值但在WPF中我不能这样做...
DataGrid.Rows[i].Cells[0].Value
然后我只是添加一些列表中的所有'i'值,其中Name等于需要,然后从datagrid中删除所有项目,除了它们。
但是如何迭代所有datagrid项/行并获取WPF中的每个列[0]值?
(我尝试使用foreach(DataGrid.Items中的DataGridRow),但它不是我需要的......
答案 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)