如何从WPF中的数据网格中获取所有行

我在我的WPF应用程序中有一个datagrid,我想在按钮click中获取列表中的所有行值。我尝试了一些方法,但我只获取了最后一个Row值...如何从WPF中的数据网格中获取所有行

private async void Save_Btn_Click(object sender, RoutedEventArgs e) 

{

pojo rowdata = new pojo();

int rowcount = calendarmstrDG.Items.Count;

List<pojo> pojolist = new List<pojo>();

var rows = (calendarmstrDG).SelectedItems;

for (int i = 1; i < rowcount - 1; i++)

{

pojo sda = (pojo)calendarmstrDG.SelectedItems;

pojolist.Add(sda);

}

}

这里calendarmstrDG是我的DataGrid的名字...... POJO是我的模型类的名字......

public class pojo 

{

public string Prefix { get; set; }

public int Year { get; set; }

public int Quarter { get; set; }

public int SerialNo { get; set; }

public string From { get; set; }

public string To { get; set; }

public string PeriodName { get; set; }

}

回答:

叠代使用foreach循环中的所有项目:

foreach(pojo p in calendarmstrDG.Items) 

{

// do something with "p", e.g. access properties: p.SerialNo

}

DataGrid.Items集合包含object类型的元素,所以在foreach循环,我们必须指定确切类型pojo到能够访问性能

,如果你需要得到的pojo一个新的列表,这是可以做到使用LINQ:

List<pojo> list = calendarmstrDG.Items.OfType<pojo>().ToList(); 

回答:

您可以使用ObservableCollection来将数据绑定到数据网格,您可以使用它没有任何努力检索数据。类似这样的:

Class MyClass 

{

ObservableCollection<pojo> myCollection {get;set;}

MyClass()

{

calendarmstrDG.DataContext = myCollection;

}

public void AddData()

{

myCollection.Add(new pojo(){ // Add Values });

}

public void Save_Btn_Click(object sender, RoutedEventArgs e)

{

foreach(pojo items in myCollection)

{

// here get items using items.Prefix/year/....

}

}

}

以上是 如何从WPF中的数据网格中获取所有行 的全部内容, 来源链接: utcz.com/qa/261141.html

回到顶部