【发布时间】:2015-12-28 06:51:00
【问题描述】:
我有一个工作程序,其中视图模型将数据提供给视图。这是在构造函数和 Refresh() 方法中完成的,如下所示。我通常会放置一个私有属性来引用视图模型,因为我想在与它通信时省略强制转换。
public class TheView
{
private ViewModel TheViewModel { get; set; }
public TheView()
{
TheViewModel = new ViewModel();
DataContext = TheViewModel;
}
public Refresh()
{
TheViewModel = new ViewModel();
DataContext = TheViewModel;
}
}
然后,我吃饱了,开始追线。由于构造函数将 DataContext 连接到属性 TheViewModel,我想我可以分配给后者,而前者会自行更新它的内容。令我失望的是,我发现事实并非如此。以下为我提供了正确的对象列表但 DataContext 不受影响。
public class TheView
{
private ViewModel TheViewModel { get; set; }
public TheView()
{
TheViewModel = new ViewModel();
DataContext = TheViewModel;
}
public Refresh() { TheViewModel = new ViewModel(); }
}
问题是为什么会这样。或者更确切地说,如果它应该是这样的话。我在想,万一它不应该表现得像这样,也许我在代码的其他地方有问题,会影响流程......
【问题讨论】:
标签: c# wpf xaml mvvm datacontext