zoukankan      html  css  js  c++  java
  • C# WinForms DataBindings绑定布尔值属性时,反向转值的问题

    一般我们要绑定个按钮的状态Enabled属性时,有可能刚好是取对应的反值,比如我绑定的是线程里一个bool的IsRunning,

    一般添加代码的方式为

    button1.DataBindings.Add("Enabled", OrderViewModel.Instance.Commands.ThreadManager,"IsRunning", false, DataSourceUpdateMode.OnPropertyChanged);

    但实际使用场景是线程运行是,按钮为灰色,显然这种方式不符合

    wpf下的这处场景还有值转换器可以利用,但winform下这种转换让我浪费了一下行,最后代码如下,更精简明了

    var bind = new Binding("Enabled", OrderViewModel.Instance.Commands.ThreadManager, "IsRunning");
                bind.Format += delegate(object o, ConvertEventArgs args) { args.Value = !((bool) args.Value); };
                button1.DataBindings.Add(bind);
  • 相关阅读:
    取三级分销上下级用户id
    Map集合
    Log4j
    异常
    逻辑运算符
    变量
    变量名命名规则
    命名法
    Nessus
    Nmap扫描工具
  • 原文地址:https://www.cnblogs.com/jizhongfong/p/4384689.html
Copyright © 2011-2022 走看看