我想在View中引发EventTrigger时调用ViewModel的方法。 我想做类似的事情,但在我的xaml代码中 MVVM :
public partial class MyView : UserControl
{
public MyView()
{
InitializeComponent();
this.Loaded +=new System.Windows.RoutedEventHandler(ViewLoaded);
}
private void ViewLoaded(object sender, RoutedEventArgs e)
{
((MyViewModel)this.DataContext).BeginWork();
}
}
我的应用程序是使用WPF 3.5构建的,我无法使用Blend SKD。
答案 0 :(得分:0)
创建类型为ICommand
的DependencyProperty,例如将其称为“BeginWorkCommand”。在viewmodel旁边创建一个新类,或使用DelegateCommand在viewmodel中直接使用它。最后将此viewmodel命令绑定到您创建的依赖项属性。
答案 1 :(得分:0)
使用MVVM Light Toolkit here中的GalaSofts
EventToCommand
<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
<WPFActions:EventToCommand Command="{Binding LoadedCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
其中LoadedCommand是在ViewModel中实现的命令
public class MyViewModel
{
private readonly ICommand loadedCommand;
public ICommand LoadedCommand { get { return loadedCommand; } }
public MyViewModel()
{
loadedCommand = new RelayCommand(myLoadedHandler);
}
//...
}
RelayCommand也是该工具包的一部分。