【问题标题】:viewmodel and view control order of execution视图模型和视图控制执行顺序
【发布时间】:2014-03-13 00:24:51
【问题描述】:

我对 MVVM 中的执行顺序有一个严重的问题: 此代码实例化视图 (XAML):

<local:ExecutionView x:Name="ExecutionView" DataContext="{Binding ExecutionViewNodel}"/>

ExecutionView 具有内部视场模型 (_viewModel = DataContext as ExecutionViewModel;)。 在其 CTOR 中,它使用 viewmodel-_viewModel.DoSomthing();

问题是它是空的..

我无法控制绑定的时间——我已经阅读了一些内容,并且有一些方法可以处理(加载的事件和 datacontextchanged)问题——我仍然认为这是一种解决方法,而不是它应该完成的方式。

我需要一种方法来控制我可以编写一个函数的步骤,该函数将在 DataContext 确定有效后调用一次。

BR,莫什。

【问题讨论】:

  • I have a serious problem - 是的,你应该开始接受答案,至少有时是这样。
  • 你是对的,我的错-实际上忘记接受我之前问过的两个答案,对此有什么想法吗?

标签: c# wpf mvvm dependencies


【解决方案1】:

不要在你的构造函数中使用DataContext,当它还不完全可用时,订阅构造函数中的DataContextChanged事件,当你的偶数处理程序被调用时,获取对新@987654324的引用@ 并执行您需要的任何操作。

也可以在 XAML 中声明事件处理程序,因此事件的订阅不需要在构造函数中。

Here is a link to MSDN 关于该事件。

【讨论】:

  • 我知道了,谢谢,难道没有更有序的方式将 xaml 同步到后面的代码吗?
  • 我想你可能会问自己一个更好的问题是“为什么我需要从构造函数(或后面的代码中的其他地方)访问 DataContext?”我很少需要自己做这件事。如果您正在寻找一种与不断变化的 DataContext 同步的更好方法,DataContextChanged 是一个非常好的答案,因为这是该事件的全部意义
猜你喜欢
  • 2013-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-22
  • 2011-12-28
  • 2014-03-07
相关资源
最近更新 更多