【发布时间】:2017-04-17 16:51:33
【问题描述】:
假设我在 OrderViewModel 类中创建一个ObservableCollection<Car>。
我还有一个 CarUserControl.xaml 文件。在类(CarUserControl.xaml.cs)后面的相应代码中,我有一行:
this.DataContext = new CarViewModel();
是否可以从 OrderViewModel 类中设置 CarUserControl 的 DataContext?
编辑:这是我之前问题的修改版本。
【问题讨论】:
-
能贴出相关的XAML代码吗?
-
能发一下CarViewModel的相关部分吗?
-
您假设的机制是错误的。它不会替换您提供的实例。要么你在某处明确地给它另一个
Car实例,要么你在 UI 中什么也看不到,因为你做错了绑定。显示足够的代码来重现问题,我会告诉你它是什么。顺便说一句,you 正在调用默认构造函数。 -
我刚刚意识到这句话“当我运行代码时,我可以看到这个
CarViewModel实例已创建,但是属性CarViewModel.Car为空。”具有误导性。该实例确实已创建,但未由绑定机制使用。似乎绑定通过调用默认构造函数然后尝试填充字段来创建一个新实例,但是它没有填充它们所需的信息。当然,我可能是错的。 -
"似乎绑定通过etc创建了一个新实例"。不,它没有。我告诉过你这不可能发生。如果你不听别人告诉你的话,你为什么在这里问问题?我告诉过你,你正在其他地方创造一个。布巴告诉你在哪里。
标签: c# wpf data-binding