【问题标题】:How can I databind a control and object and modify the data as it passes through?如何对控件和对象进行数据绑定并在数据通过时对其进行修改?
【发布时间】:2015-10-01 19:07:59
【问题描述】:

例如

  • 我有一个名为millisecondsTextBox
  • 我的班级有一个名为 myobject 的自定义对象,变量为 public int ms { get; set; }
  • 所以myobject.ms 是我想在输入时更改的内容

但是,变量milliseconds.Text是一个字符串,而myobject中的变量是一个int

所以当我尝试像这样添加数据绑定时:

milliseconds.DataBindings.Add("Text", myobject, "ms"); 它产生一个System.ArgumentException(我多次运行代码)

有没有办法将milliseconds.Text 数据绑定更改为中途的转换? (由于字符串和int之间的不一致)

【问题讨论】:

  • it produces a System.ArgumentException of course. 当然不应该。发布您正在使用的代码,而不是示例。
  • 这是我现在使用的代码...
  • myobject 是变量还是类?
  • myobject 是一个类,dataBindings 运行两次后会报错
  • 它必须是一个变量:myobject obj = new myobject(); 现在您使用 obj 进行数据绑定。

标签: c# string winforms data-binding integer


【解决方案1】:

您可以将该对象的属性绑定到TextBoxText 属性:

YourTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", 
    yourObjectInstance, "PropertyOfYourObject", true, 
    System.Windows.Forms.DataSourceUpdateMode.OnPropertyChanged));

数据到目标类型的转换将使用数据绑定完成,不需要任何手动类型转换。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-02-04
    • 1970-01-01
    • 2017-01-28
    • 2013-10-18
    • 1970-01-01
    • 2011-05-14
    相关资源
    最近更新 更多