WPF 用户控件上无法调用Command得标签可使用事件调用command得方法。如下。

这篇博客介绍了如何在WPF用户控件中使用TextBox,并在后台处理鼠标点击事件。通过MainViewModel的RelayCommand实现了命令绑定,当用户输入设备编号并点击时,会触发命令执行显示输入的设备编号。
摘要由CSDN通过智能技术生成

用户控件视图代码:

  <TextBox Name="TextB" Width="364" Height="38" FontSize="24" Background="Transparent" BorderThickness="0"  VerticalContentAlignment="Center" Foreground="#6076AD"   HorizontalAlignment="Left" Text="请输入设备编号"/>

用户控件后台代码:

 private void Image_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
        {
            var MyVM = DataContext as MainViewModel; string Name = this.TextB.Text.ToString();
            if (MyVM != null && MyVM.ClickCC.CanExecute(null))
           
                MyVM.ClickCC.Execute(Name);
        }

MainViewModel 代码

public RelayCommand ClickCC
        {
            get
            {
                return new RelayCommand((arg) =>
                {
                    MessageBox.Show(arg.ToString());
                });
            }
        }

RelayCommand命令类

 public class RelayCommand : ICommand
    {
        private readonly Action<object> m_execute;
        private readonly Predicate<object> m_canExecute;

        public RelayCommand(Action<object> execute)
        {
            this.m_execute = execute;
        }

        public RelayCommand(Action<object> execute, Predicate<object> canExecute)
        {
            this.m_execute = execute;
            this.m_canExecute = canExecute;
        }

        public bool CanExecute(object parameter)
        {
            if (m_canExecute == null)
                return true;

            return m_canExecute(parameter);
        }

        public event EventHandler CanExecuteChanged
        {
            add { CommandManager.RequerySuggested += value; }
            remove { CommandManager.RequerySuggested -= value; }
        }

        public void Execute(object parameter)
        {
            this.m_execute(parameter);
        }
    } 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值