【问题标题】:Three-way data binding三向数据绑定
【发布时间】:2019-09-11 06:21:38
【问题描述】:

您好,我想将 TrackBar 的 Value 属性绑定到两个对象的 BrightnessPercentage 属性。我这样做时出错,谁能告诉我如何在我的 TrackBar 和两个对象之间完成三向绑定?

class ImageProperties {
  public int BrightnessPercentage { get; set; }
}

class ImageDrawer {
  public int BrightnessPercentage { get; set; }
}

ImageProperties _imgProps = new ImageProperties();
ImageDrawer _imgDrawer = new ImageDrawer();

void Test() {
    trackBar1.DataBindings.Add("Value", _imgProps, "BrightnessPercentage", false, DataSourceUpdateMode.OnPropertyChanged);

    trackBar1.DataBindings.Add("Value", _imgDrawer, "BrightnessPercentage", false, DataSourceUpdateMode.OnPropertyChanged);
}

提前致谢!

【问题讨论】:

    标签: c# winforms binding


    【解决方案1】:
    class ImageProperties {      
      public int BrightnessPercentage { get; set; }
    }
    
    class ImageDrawer {
      public int BrightnessPercentage { get; set; }
    }
    
    ImageProperties _imgProps = new ImageProperties();
    ImageDrawer _imgDrawer = new ImageDrawer();
    
    public int TheBrightnessPercentage {
      get { return _imgProps.BrightnessPercentage;}
      set { _imgProps.BrightnessPercentage=_imgDrawer.BrightnessPercentage=value;}
    }
    void Test() {
        trackBar1.DataBindings.Add("Value", this, "TheBrightnessPercentage", false, DataSourceUpdateMode.OnPropertyChanged);    
    }
    

    【讨论】:

    • 没有更简单的方法吗?我还有两打属性,我不想为每个属性创建一个额外的属性:/
    • 抱歉,我找不到更好的解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-06-14
    • 1970-01-01
    • 2013-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多