WPF 数据绑定:根据 var 的内容启用/禁用控件?

2024-04-07

我的表单上有一个按钮,仅当在树视图(或选项卡项中的列表视图)中选择一个项目时才应启用该按钮。当选择一个项目时,它的值将存储在字符串成员变量中。

我可以绑定吗IsEnabled按钮的属性到成员变量的内容?也就是说,如果成员变量不为空,则启用该按钮。

同样,当成员变量的内容更改(设置或清除)时,按钮的状态也应该更改。


由于您可能希望基于字符串绑定按钮的 IsEnabled 属性,因此请尝试为其创建一个转换器。

Ie...


<StackPanel>
<StackPanel.Resources>
<local:SomeStringConverter mystringtoboolconverter />
</StackPanel.Resources>
<Button IsEnabled="{Binding ElementName=mytree, Path=SelectedItem.Header, Converter={StaticResource mystringtoboolconverter}}" />
<StackPanel>

和转换器:


[ValueConversion(typeof(string), typeof(bool))]
    class SomeStringConverter : IValueConverter {
        public object Convert( object value, Type targetType, object parameter, CultureInfo culture ) {
            string myheader = (string)value;
            if(myhead == "something"){
                return true;
            } else {
                return false;
            }
        }

        public object ConvertBack( object value, Type targetType, object parameter, CultureInfo culture ) {
            return null;
        }
    }

编辑: 由于OP想要绑定到一个变量,所以需要做这样的事情:


public class SomeClass : INotifyPropertyChanged {
  private string _somestring;

  public string SomeString{
    get{return _somestring;}
    set{ _somestring = value; OnPropertyChanged("SomeString");}
  }

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

}

然后,将上面的绑定表达式更改为:



{Binding Path=SomeString, Converter={StaticResource mystringtoboolconverter}}
  

请注意,您必须实现 INotifyPropertyChanged 才能更新您的 UI。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

WPF 数据绑定:根据 var 的内容启用/禁用控件? 的相关文章

随机推荐

  • Python ElementTree find() 在 kml 文件中不匹配

    我正在尝试使用元素树从 kml 文件中查找元素 如下所示 from xml etree ElementTree import ElementTree tree ElementTree tree parse history 03 02 201
  • 为什么在构建视图时要指定数据上下文类?

    当使用下图所示的 添加视图 对话框向 ASP NET MVC 5 项目添加新视图时 我被邀请选择一个模板和一个模型类 这使我能够快速生成一个表单来创建模型的新实例或显示模型属性的视图 但是视图为什么要关心数据上下文类是什么 在我的项目中 无
  • 在 ActionCable 中未找到订阅类“MyChannel”

    我在使用 Action Cable 时遇到问题 每当我运行程序时 我都会收到一条错误消息 Subscription找不到类ConversationChannel 当我尝试发送消息时 我收到此日志 成功升级到WebSocket REQUEST
  • 二维码回车

    如何在 QR 条形码中编码回车符 例如 如果我用 Android 扫描它 它就会出现 A B C 我努力了A d013B d013C等等 但它总是显示转义字符 在我发现的其他方法中 这些方法似乎都不起作用 您只需将正确的字节序列放入 QR
  • 正则表达式中的负向前瞻以排除 R 中的百分比 (%)

    我希望提取具有任意小数的数字 小数点两边至少各有一个数字 但是not模式后跟百分比 因此 我相信我需要一个负前瞻 这样它就可以看到数字后面是否有百分号 为了清楚起见 我想提取 123 123 但不想提取 123 123 我尝试了十几种语法安
  • 如何在tcl中搜索数字即进程ID并杀死进程ID

    我尝试搜索存储在变量 say 缓冲区中的进程 id i e 6762 nohup tcpdump ni eth0 s0 2 gt 1 null 1 6762 You have new mail in var mail root 如果匹配的话
  • 参数类型“对象?”无法分配给参数类型“Map

    我在以下行 var map Map from snap snapshot value 中的 snap snapshot value 参数上出现错误 错误是 参数类型 对象 无法分配给参数类型 Map class HomePageState
  • 用于调整图像大小和创建缩略图的 ImageMagick 或 GD 库?

    我一直在使用其他人编写的图像调整大小类来调整图像大小或创建缩略图 这是我一直在使用的类的链接 http www white hat web design co uk articles php image resizing php http
  • 使用用户窗体中的数据将值从一张纸复制到另一张纸

    我有一个用户表单 其中包含您可以填写的以下值 TextBoxLopnummer Value TextBoxFragestallare Value TextBoxMottagare Value TextBoxDatum Value Pictu
  • 在 do while 循环内检查多个 checkbox.checked 状态

    我在上一个问题中问过如何 线程化 2 个表单以同时使用 C https stackoverflow com questions 40450905 threading 2 forms to use simultaneously c sharp
  • -1 是一个神奇的数字吗?反模式?代码味道?当局的引述和指南[重复]

    这个问题在这里已经有答案了 可能的重复 不断的虐待 https stackoverflow com questions 1862593 constant abuse 我见过 1用于各种 API 最常用于搜索具有从零开始的索引的 集合 时 通
  • 从 Rails 3 升级后不允许使用 Rails 4 方法

    我有一个现有的代码库 我正在尝试将其从 Rails 3 2 升级到 Rails 4 0 我有一个名为 asset controller 的控制器 带有 create 方法 并且我的路由文件中有一个条目 resources assets 在前
  • 如何创建一个接受任何类型变量的 Java 函数?

    我想创建一个可以接受任何传入变量的函数 无论类型如何 int double String或其他对象 然后可能确定变量的类型并对该类型进行有条件的操作 我怎样才能做到这一点 重载是最推荐的选项 大多数时候您不需要接受任何类型变量的函数 但是如
  • 为什么ssd和yolo没有roi池化层?

    我们知道目标检测框架像faster rcnn and mask rcnn has an roi pooling layer or roi align layer 但是为什么ssd和yolo框架没有这样的层呢 首先我们要明白这样做的目的是什么
  • @font-face 和 .ttf 文件出现问题

    我正在尝试使用 font face 来实现我在线下载的字体 http www losttype com font name blanch http www losttype com font name blanch 并且我在让它在任何浏览器
  • 保存 ember 数据模型后的转换

    我想在创建帖子后进行转换 post new gt 单击提交 gt Rails 后端成功创建帖子并响应 json gt 重定向到新创建帖子的路径 在 ember data example github 源代码中 他们使用这种方法 transi
  • Grails JSONBuilder

    如果我有一个简单的对象 例如 class Person String name Integer age 我可以使用 JSONBuilder 轻松地将其用户定义的属性呈现为 JSON def person new Person name bo
  • Rails 在模型中验证值在数组内

    我有一个表格 我可以在其中传递一个字段命名 type我想要检查它的值是否在允许类型的数组内以便任何人不得发布不允许的类型 数组看起来像 allowed types type1 type2 type3 type4 type5 type6 ty
  • 异步顺序调用方法

    我有一个在方法中调用的方法列表 如下所示 this doOneThing someOtherObject doASecondThing this doSomethingElse 当这是同步时 它们会一个接一个地执行 这是必需的 但现在我有
  • WPF 数据绑定:根据 var 的内容启用/禁用控件?

    我的表单上有一个按钮 仅当在树视图 或选项卡项中的列表视图 中选择一个项目时才应启用该按钮 当选择一个项目时 它的值将存储在字符串成员变量中 我可以绑定吗IsEnabled按钮的属性到成员变量的内容 也就是说 如果成员变量不为空 则启用该按