在ViewModel中处理TextBox事件,例如Text_changed

时间:2015-11-19 04:38:19

标签: events mvvm textbox

对于处理按钮单击视图模型,我们将Button-Command与ViewModel属性挂钩。

<Button Command="ButtonCommand"/>


class MyViewModel
{
   ICommand _buttonCommand;
   public MyViewModel()
   {
     _buttonCommand=new CommandHandler(() => Buttonfunction(), "true");
   }

   public ICommand ButtonCommand
   {
    get{ return _buttonCommand;}    
   }

   private void Buttonfunction
   { //do something. }
}

public class CommandHandler : ICommand
{
 private Action _action;
 private bool _canExecute;
 public CommandHandler(Action action, bool canExecute)
 {
    _action = action;
    _canExecute = canExecute;
 }

 public bool CanExecute(object parameter)
 {
    return _canExecute;
 }

 public event EventHandler CanExecuteChanged;

 public void Execute(object parameter)
 {
    _action();
 }
}

同样可以为TextBox事件做些什么。 我们如何在.NET 3.5中使用TextBox事件绑定命令。

<TextBox TextChanged=?/>

1 个答案:

答案 0 :(得分:2)

您必须先将其绑定到属性,然后使用该属性的setter作为文本更改事件。 在你的xaml中:

<TextBox Text="{Binding Name}" />

在您的Viewmodel中

private string _name;

public string Name
{
    get
    {
        return _name;
    }
    set
    {
        _name = value;
        yourTextChangeEvent();
    }
}