首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在用户向文本框中键入内容时启用按钮

如何在用户向文本框中键入内容时启用按钮
EN

Stack Overflow用户
提问于 2009-05-04 17:44:05
回答 6查看 21.9K关注 0票数 20

在WPF中,当用户在TextBox中键入内容时启用Button的最简单方法是什么

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2009-05-04 19:01:41

使用简单命令

<TextBox Text={Binding Path=TitleText}/>

<Button Command="{Binding Path=ClearTextCommand}" Content="Clear Text"/>

以下是View Model中的示例代码

public class MyViewModel : INotifyPropertyChanged
{
    public ICommand ClearTextCommand { get; private set; }

    private string _titleText; 
    public string TitleText
    {
        get { return _titleText; }
        set
        {
            if (value == _titleText)
                return;

            _titleText = value;
            this.OnPropertyChanged("TitleText");
        }
    }   

    public MyViewModel()
    {
        ClearTextCommand = new SimpleCommand
            {
                ExecuteDelegate = x => TitleText="",
                CanExecuteDelegate = x => TitleText.Length > 0
            };  
    }            

    public event PropertyChangedEventHandler PropertyChanged;

    protected void OnPropertyChanged(string propertyName)
    {
        PropertyChangedEventHandler handler = this.PropertyChanged;
        if (handler != null)
            handler(this, new PropertyChangedEventArgs(propertyName));
    }     
}

有关更多信息,请参阅Marlon Grechs SimpleCommand

也可以从http://blogs.msdn.com/llobo/archive/2009/05/01/download-m-v-vm-project-template-toolkit.aspx查看MVVM Project Template/Toolkit。它使用DelegateCommand进行命令,它应该是任何项目的一个很好的启动模板。

票数 0
EN

Stack Overflow用户

发布于 2010-01-18 20:31:58

为什么每个人都把事情搞得这么复杂!

    <TextBox x:Name="TB"/>
    <Button IsEnabled="{Binding ElementName=TB,Path=Text.Length}">Test</Button>

不需要别的了......

票数 128
EN

Stack Overflow用户

发布于 2009-12-03 18:11:13

使用触发器!

<TextBox x:Name="txt_Titel />
<Button Content="Transfer" d:IsLocked="True">
  <Button.Style>
    <Style>
      <Style.Triggers>
        <DataTrigger Binding="{Binding ElementName=txt_Titel, Path=Text}" Value="">
         <Setter Property="Button.IsEnabled" Value="false"/>
        </DataTrigger>
      </Style.Triggers>
    </Style>
  </Button.Style>
</Button>
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/821121

复制
相关文章

相似问题

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