0

我创建了一个按钮的覆盖:

公共类 LauncherButton : 按钮
{
    公共图像源图像源
    {
        获取 { 返回 (ImageSource)GetValue(ImageSourceProperty); }
        设置 { SetValue(ImageSourceProperty, value); }
    }
    公共静态只读 DependencyProperty ImageSourceProperty =
        DependencyProperty.Register("ImageSource", typeof(ImageSource), typeof(LauncherButton), new UIPropertyMetadata(null));


    公共字符串标题
    {
        获取{返回(字符串)GetValue(CaptionProperty);}
        设置 { SetValue(CaptionProperty, value); }
    }
    公共静态只读 DependencyProperty CaptionProperty =
        DependencyProperty.Register("Caption", typeof(string), typeof(LauncherButton), new UIPropertyMetadata(null));



    公共 ICommand ExecuteCommand
    {
        获取 { 返回 (ICommand)GetValue(ExecuteCommandProperty); }
        设置 { SetValue(ExecuteCommandProperty, value); }
    }

    公共静态只读 DependencyProperty ExecuteCommandProperty
            = DependencyProperty.Register("ExecuteCommand", typeof(ICommand), typeof(LauncherButton));

}

我在这里使用它:

    <controls:LauncherButton Caption="Job Phases"
                                   ImageSource="/FMG.UI.WPF.Shared;component/Media/Images/jobphase_128.png"
                                   Margin="10"
                                   Style="{StaticResource TabletLauncherButtonStyle}"
                                   ExecuteCommand="{Binding ItemSelectedCommand}"
                                   CommandParameter="{x:Static enums:View.JobPhases}"/>

和视图的虚拟机:

公共类 TabletHomeViewModel : _HomeViewBase
{
    私有 ICommand _ItemSelectedCommand;
    公共 ICommand ItemSelectedCommand
    {
        得到
        {
            如果(_ItemSelectedCommand == null)
                _ItemSelectedCommand = new RelayCommand(p => itemSelecteExecuted((View)p), p => itemSelecteCanExecute((View)p));


            返回_ItemSelectedCommand;
        }
    }


    private bool itemSelecteCanExecute(查看视图)
    {
        返回真;
    }
    private void itemSelecteExecuted(查看视图)
    {
    }
}

ItemSelectedCommand 的 Getter 在启动时触发,但是当我单击按钮时,该命令不会触发。输出窗口不显示任何绑定问题。

如果我为它连接一个点击事件,它会触发。

任何人都看到有什么问题吗?

谢谢

4

0 回答 0