我正在实现WPF MVVM向导,我想知道在加载新的向导页面(UserControl)时执行DoOperation
的正确方法。
DoOperation
类实现了MyWizard.ViewModal
,而UserControl
名称空间发生了MyWizard.View
加载。
如何在UserControl
加载的事件与DoOperation
api之间建立连接?
我尝试了以下内容:
<xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
<i:InvokeCommandAction Command="{Binding Path=RunOperation}"/
</i:EventTrigger>
</i:Interaction.Triggers>
RunOperation
来电DoOperation
。
它不起作用,RunOperation
没有被调用。
这是正确的方法还是有更好的方法在MyWizard.ViewModal
班级执行操作?
答案 0 :(得分:0)
你的方法应该有效。您是否检查过输出控制台是否存在绑定错误? RunOperation
是命令吗?在引发Loaded
事件时,是否已设置UserControl的DataContext?你有没有在你的UC中实现这样的触发器?
<UserControl x:Class="..."
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
<i:InvokeCommandAction Command="{Binding Path=RunOperation}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<Grid>
...
</Grid>
</UserControl>