ET.*_*ET. 6 c# data-binding winforms
我正在尝试进行(非常)简单的数据绑定测试,但它不能像我预期的那样工作...说我有以下类:
// this class represents some kind of data producer
public class DataSourceClass
{
public string Data { get; set; }
public DataSourceClass()
{ }
}
//this form holds the TextBox control as the Data consumer
public partial class DatabindingTestForm : Form
{
public DataSourceClass ds { get; set; }
public DatabindingTestForm()
{
InitializeComponent();
ds = new DataSourceClass();
textBox.DataBindings.Add("Text", ds, "Data");
}
private void checkBox_CheckedChanged(object sender, EventArgs e)
{
if (checkBox.Checked)
ds.Data = "CHECKED";
else
ds.Data = "NOT CHECKED";
}
}
Run Code Online (Sandbox Code Playgroud)
我没有添加设计器代码,但它在那里,表单包含TextBox对象和CheckBox对象.您可以理解,我正在尝试更改Textbox Text属性,因为用户检查\取消选中CheckBox.但是此代码不会更新TextBox Text属性.有人可以解释一下我错过了什么吗?
当Data属性的值发生变化时,您需要一些方法来通知WinForms .最直接的方法是:
DataSourceClass:public event EventHandler DataChanged;DataSourceClass工具INotifyPropertyChanged.这会给你一个PropertyChanged活动.无论哪种方式,你都会有一个你需要提出的新事件.您需要将Data属性从auto属性转换为具有私有字段,get方法和set方法的属性.一旦你有了一个明确的getter和setter Data属性,你就可以从setter中提升你的事件.
| 归档时间: |
|
| 查看次数: |
691 次 |
| 最近记录: |