gpt4 book ai didi

c# - 我如何在 WPF 上刷新我的 DataGrid

转载 作者:太空宇宙 更新时间:2023-11-03 10:24:09 27 4
gpt4 key购买 nike

我有一个问题。

我有这个 WPF GridView

<DataGrid 
ItemsSource="{Binding Path=myOrder.Detail}">
</DataGrid>

我在 viewModel 上的属性如下所示:

public myOrderModel myOrder { get; set; }

这是我的模型:

public partial class myOrderModel
{
public int ID_Order { get; set; }
public List<myOrdenDetail> Detail { get; set; }
}

在 View 模型的构造函数中,y 用来自 WCF 服务的数据填充我的订单,并且详细信息正确显示在网格上(当然此代码已简化)。现在我需要从 View 模型内部修改 de Detail 集合(添加、删除或修改)。问题是 gridview 没有刷新以显示此更改。

如何通知网格以反射(reflect)详细列表中的更改?谢谢!!!!!!

编辑

按照建议,我尝试使用 ObservableCollection,它成功了。在 viewModel 中我添加了一个属性:

public ObservableCollection<myOrdenDetail> Detail{ get; set; }

并将模型映射到我的新属性:

Detail = new ObservableCollection<myOrdenDetail>(myOrder.Detail);

当然,我需要在保存信息时将 Detail 映射回原始模型。我也可以更改 WCF 服务背后的原始模型,但我不知道 WCF 将如何与 ObservableCollection 使用react。

谢谢!

最佳答案

WPF 需要知道项目已经改变并且 List<T>不执行INotifyCollectionChanged .如果您要更改 Detail属性为ObservableCollection<myOrderDetail>那么你应该可以开始了,网格将在添加或删除项目时更新。

关于c# - 我如何在 WPF 上刷新我的 DataGrid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32251434/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com