c# - 如何使用触发器将事件参数传递给命令?

标签 c# events mvvm silverlight-4.0 icommand

所以我有一个简单的设置,一个带有我想绑定(bind)到命令的填充事件的自动完成框。我用

clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity 

(有更好的命名空间吗?)

绑定(bind)它没什么大不了的,重要的是将 PopulatingEventArgs 参数传递给绑定(bind)的命令。

那么我该如何根据特别是 PRISM 和一般 MVVM 的最佳实践来做到这一点?

最佳答案

我尝试了 InteractiveCommand,它给我带来了问题。相反,我设置了对 Microsoft.Expression.Interactions 的引用并包含

xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions" 

<i:Interaction.Triggers>
    <i:EventTrigger EventName="AppointmentEditing">
        <ei:CallMethodAction MethodName="AppointmentEditing" TargetObject="{Binding}" />
    </i:EventTrigger>
    <i:EventTrigger EventName="ShowDialog">
        <ei:CallMethodAction MethodName="ShowDialog" TargetObject="{Binding}" />
    </i:EventTrigger>
</i:Interaction.Triggers>

...在我的用户控件中。

然后将事件处理程序放入我的 ViewModel 并将范围设置为公共(public):

public void ShowDialog(object sender, ShowDialogEventArgs e) {

}

public void AppointmentEditing(object sender, AppointmentEditingEventArgs e) {

} 

目前运行良好。

关于c# - 如何使用触发器将事件参数传递给命令?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13565484/

相关文章:

c# - 绑定(bind)命令以从集合中删除 self

c# - INotifyPropertyChanged 未在 ItemsControl 内的 ViewModel 上触发

c# - 在 MVVM Light 5.2.0.37222 中找不到 GalaSoft.MvvmLight.CommandWpf 命名空间

java - 如何解决对全局设置/事件注册表的类型安全异议?

c# - 排队异步操作,让它们在 MVVM 应用程序中一次运行一个

iphone - 如何将触摸从另一个 UIView 转发到 UIButton?

jquery - 在另一个 div 的高度变化时制作一个 div 幻灯片

c# - (无效的方法)避免在 C# 中双重检查锁

c# - 不同表同同

c# - 如果我需要一个 bool 来将选项也设置为 null,那么我最好使用可空 bool 还是自定义枚举?