【问题标题】:How to get control's raw value when it is bound to a data source?绑定到数据源时如何获取控件的原始值?
【发布时间】:2016-04-27 12:08:11
【问题描述】:

我有一个绑定到数据源(POCO 类)的小数属性的控件。我还设置了控件“数据绑定”,以便将控件格式化为货币。例如。

TextBox1.DataBindings.Add(new Binding("Text", this.bindingSource, "Amount", true, DataSourceUpdateMode.OnValidation, "", "C2"));

通过DataBindings我知道控件是绑定的以及绑定到数据源的哪个属性。

是否可以从控件本身获取原始值(即没有任何格式的值)?

【问题讨论】:

    标签: c# winforms data-binding


    【解决方案1】:

    你可以使用BindingSource获取值,但我想你想让它更加动态和独立于BindingSource,所以你可以通过这种方式获取控件背后数据源的原始值:

    var binding = this.textBox1.DataBindings[0];
    var obj = this.textBox1.BindingContext[binding.DataSource].Current;
    var value = TypeDescriptor.GetProperties(obj)[binding.BindingMemberInfo.BindingField]
                              .GetValue(obj);
    

    这样,数据源类型无关紧要,您可以使用BindingSourceDataTableList<T>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-22
      • 1970-01-01
      • 1970-01-01
      • 2011-08-17
      相关资源
      最近更新 更多