c# - 命令在我自定义的 UserControl 中内置的事件上不起作用/触发

标签 c# xaml mvvm windows-runtime

我正在开发这个 (MVVM) Windows 8.1 metro 应用程序,我正在使用我单独构建的 UserControl,这个 UserControl 有它自己的事件,我为它而建。

我的问题是:当我尝试在全局应用程序中对那些它们从不触发的命令使用命令时,尽管事件有效!

UserControl 及其事件:

public delegate void PlayClickedEventHandler(object sender, RoutedEventArgs e);
...
public event PlayClickedEventHandler PlayClicked;

PlayClicked 事件在 UserControl 中的按钮被点击时触发

private void PlayButton_OnClick(object sender, RoutedEventArgs e)
{
   if (PlayClicked != null)
   PlayClicked(this, e);
}

全局 Windows 8.1 MVVM 应用:

View :

<mediaPlayerControl:PlayerControl x:Name="UserControl">
    <interactivity:Interaction.Behaviors>
        <core:EventTriggerBehavior EventName="PlayClicked">
              <core:InvokeCommandAction Command="{Binding OnPlayClicked, Mode=TwoWay}"/>
    </core:EventTriggerBehavior>
    </interactivity:Interaction.Behaviors>
</mediaPlayerControl:PlayerControl>

View 模型:

public RelayCommand OnPlayClicked { get; set; }
    OnPlayClicked = new RelayCommand(() =>
                                    {
                                       //Stuff to do here that seem not to be done
                                    });

我是不是错过了什么??

最佳答案

我想这可以解释它(来自 EventTriggerBehavior 上的文档)

The following events are supported:

(list of 11 events)

Consider implementing a custom behavior to respond to other events.

为什么不使用 EventTrigger反而? (另请注意,“OnPlayClicked”绑定(bind)实际上应该是一种方式,尽管这不应该有所作为。)

<mediaPlayerControl:PlayerControl x:Name="UserControl">
    <interactivity:Interaction.Triggers>
        <uixaml:EventTrigger EventName="PlayClicked">
            <core:InvokeCommandAction Command="{Binding OnPlayClicked}"/>
        </uixaml:EventTrigger>
    </interactivity:Interaction.Triggers>
</mediaPlayerControl:PlayerControl>

关于c# - 命令在我自定义的 UserControl 中内置的事件上不起作用/触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20829618/

相关文章:

c# - 当 c# 中的扬声器没有声音时,如何使用 WasapiLoopbackCapture 录制音频?

c# - 如何将委托(delegate)函数转换为内联等待

c# - RelativeSource 绑定(bind)适用于 Style 但不适用于 ControlTemplate

c# - 调试/断点为什么 WPF BindingExpression 为空

c# - 需要帮助实现接口(interface)

c# - 将 WinForm 应用程序转换为 WPF ViewModel

c# - python3 pythonnet 泛型代表

c# - 当行数超过 125 时,EasyUI Datagrid 行无法发布到 ASP.NET MVC4 中的相应操作

wpf - 如何更改ListBox中SelectedItem的前景?

c# - 从 MVVM 读取 ListView 数据