如何从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