我对MVVM中的执行顺序有严重问题: 此代码实例化视图(XAML):
<local:ExecutionView x:Name="ExecutionView" DataContext="{Binding ExecutionViewNodel}"/>
ExecutionView
具有内部视图模型(_viewModel = DataContext as ExecutionViewModel;
)。
在其CTOR中,它使用viewmodel- _viewModel.DoSomthing();
问题是它是null ..
我无法控制绑定的时间 - 我已经阅读了一些内容以及处理问题的方法(Loaded event和datacontextchanged) - 我仍然认为这是一种解决方法,而不是它应该如何完成。
我需要一种方法来控制我可以编写一个函数的步骤,该函数将在DataContext确定有效后调用一次。
BR,Mosh。
答案 0 :(得分:0)
不是在构造函数中使用DataContext
,而是在它不可用时,在构造函数中订阅DataContextChanged
事件,并在调用偶数处理程序时,获取对新的DataContext
并执行您需要的任何操作。
也可以在XAML中声明一个事件处理程序,因此对事件的订阅不需要在构造函数中。
Here is a link to MSDN关于该事件。