首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >启用按钮和DelegateCommand

启用按钮和DelegateCommand
EN

Stack Overflow用户
提问于 2009-10-19 09:11:40
回答 2查看 11.5K关注 0票数 2

TextBox中输入所需数据之前,如何禁用Button

我正在将Button绑定到ICommand

代码语言:javascript
复制
public ICommand LoginCommand
{
    get
    {
        if (_loginCommand == null)
        {
            _loginCommand = new DelegateCommand<string>(this.Login, this.IsValid);
        }
        return _loginCommand;
    }
}

在XAML中,如下所示:

代码语言:javascript
复制
<Button Style="{StaticResource LoginButton}" Content="Login" Command="{Binding LoginCommand}" CommandParameter="{Binding Text, ElementName=txtUserName}" />
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-11-05 08:01:42

您只需要引发requery事件。使用DelegateCommand很容易做到这一点。这是你的ViewModel应该是什么样子。

此外,如果没有令人信服的理由将您的属性设置为DelegateCommand类型,那么您应该这样做。

代码语言:javascript
复制
public class MyViewModel : ViewModel
{

    private string _myTextField;
    public string MyTextField
    {
        get { return _myTextField; }
        set
        {

            _myTextField = value;
            OnPropertyChanged("MyTextField");

            //Here's the magic
            LoginCommand.RaiseCanExecuteChanged();

        }
    }

    public DelegateCommand<string> LoginCommand { get; set; }

    public MyViewModel()
    {
         LoginCommand = new DelegateCommand<string>(Login, CanLogin);
    }

    public bool CanLogin(string text)
    {
         return !string.IsNullOrEmpty(text);
    }

    public void Login(string text)
    {
         //login logic
    }

}

差不多就是这样。

票数 2
EN

Stack Overflow用户

发布于 2009-10-19 17:44:15

DelegateCommand在哪里定义?检查构造函数,它可能期望第二个参数是一个谓词,其结果被映射到ICommandCanExecute

我假设this.IsValid是一个委托方法,如果从视图传递的命令参数的string.Length >0,则该方法返回true…尝试将其设置为always return false,以检查UI是否禁用该按钮。

编辑:要将参数放入IsValid方法,请使用以下语法:

更改IsValid方法的语法以接受字符串参数,然后按如下方式取消DelegateCommand:

代码语言:javascript
复制
_loginCommand = new DelegateCommand<string>(this.Login, (param) => this.IsValid(param));

HTH :)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1587665

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档