对象上的自定义事件更改按钮状态

时间:2010-12-14 00:27:42

标签: c# .net winforms events

我的数据输入表单上有3个按钮,OK,APPLY,CANCEL。

此表格用于编辑医生的详细信息,如姓名,电话号码等......

我有一个对象doctorObj,它在任何给定时间都是空的(新医生)或从Linq查询中提取的对象。

我深深地将doctorObj克隆到EditCopyDoctor,它类型相同但用于表单编辑(因此如果点击取消,则数据库不需要更新)。

我想要实现的是观察EditCopyDoctor对原始doctorObj的更改,所以

If(doctor.Changed() && doctor.IsNotNew)
{
ApplyButton.Enabled = true;
}
else
{
ApplyButton.Enabled = false;
} 

所以我想写一个事件来触发EditCopyDoctor上发生了什么变化是最好的方法,但我不确定如何。

我当然可以将ApplyButton.Enabled代码放在表单中的TextChanged事件中,但我想知道是否有更快的方法来执行此操作,我真的不想这样做,因为有10个以上的文本框和其他控件。

1 个答案:

答案 0 :(得分:1)

由于您的“Doctor”类型听起来像是由LINQ to SQL / Entities生成的,您应该会发现它已经实现了INotifyPropertyChanged接口。因此,您只需要观看PropertyChanged事件并采取相应行动。