gpt4 book ai didi

c# - 当 DataContext 更改时,WPF ObservableCollection 尚未更新

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

我有 Data = new ObservableCollection<DATA>(dataContext.DATA);

dataContext是我的实体。 DATA是 SQL Server 表。

现在我运行 Import 方法,它填充 DATA SQL Server 上的表:

    public static void Import(DataTable table)
{
var dataContext = DataContext.Instance.Entities;

foreach (DataRow row in table.Rows)
{
.......

var dataRow = new DATA
{
.........
};

dataContext.AddToDATA(dataRow);
}
dataContext.SaveChanges();
}

但是我的 ObservableCollection Data还是空的。如何更新?

最佳答案

ObservableCollection<T> Constructor (IEnumerable<T>) :

Initializes a new instance of the ObservableCollection class that contains elements copied from the specified collection.

这里的关键字是它复制集合中的元素。之后它不会与您传入的枚举保持任何同步。您的代码正在更新 dataContext对象,不是你的 Data对象(ObservableCollection)。您将不得不构建自己的 ObservableCollection 同步版本,或者创建方法来保持它们同步。

如果您不关心保留 dataContext对象同步并且只想在一次性加载中使用它,那么在 ObservableCollection 的构造函数中使用它之前,您必须在该枚举中拥有所有适当的对象。

我猜你会做类似下面的事情:

Data = new ObservableCollection<DATA>(dataContext.DATA)

// Afterwards...
Import(foobar);

应该是:

Import(foobar);

// Afterwards...
Data = new ObservableCollection<DATA>(dataContext.DATA)

关于c# - 当 DataContext 更改时,WPF ObservableCollection 尚未更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14631328/

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