C# 布尔字段更改时触发某些事件的直接方法?
我想知道当布尔字段从true变为false时,是否有一种方法可以直接控制某些事件 比如使用委托C# 布尔字段更改时触发某些事件的直接方法?,c#,events,delegates,boolean,C#,Events,Delegates,Boolean,我想知道当布尔字段从true变为false时,是否有一种方法可以直接控制某些事件 比如使用委托 实际上,我有很多用户输入控件(复选框、文本框等),我正在寻找一种方法来绕过foreach和control.disabled的使用。当然有,在属性的集合访问器上使用事件引发器,而不是直接更改成员变量…使用属性来设置字段值。在属性的setter中引发PropertyChanged事件 示例代码: bool Flag { get { return this.flag; } set {
实际上,我有很多用户输入控件(复选框、文本框等),我正在寻找一种方法来绕过foreach和control.disabled的使用。当然有,在属性的集合访问器上使用事件引发器,而不是直接更改成员变量…使用属性来设置字段值。在属性的setter中引发PropertyChanged事件 示例代码:
bool Flag
{
get { return this.flag; }
set
{
if (this.flag != value)
{
this.flag = value;
// Raise PropertyChanged event here ..
}
}
}
属性始终可以从内部触发事件:
private bool check = false;
public bool MyCheckboxChecked
{
get
{
return check;
}
set
{
if (check == true && value == false)
MyEvent("MyCheckboxChecked is about to change from true to false!");
check = value;
}
}
如果要监视控件的公共字段(即
CheckBox.Checked
),则始终可以连接它们已经提供的事件,如CheckedChanged
,没错。如果您使用的是WPF,则可以实现INotifyPropertyChanged接口和绑定,这非常方便您的需要
或使用操作:
private bool isIt;
public Action YourAction{get; set;}
public bool IsIt
{
get{return isIt;}
set{isIt = value; if(YourAction != null) YourAction();}
}
我相信您必须将Rising语句放在值更改语句之后..没错,最好在实际值更改之前引发ValueChanged事件,并在赋值之后引发ValueChanged事件,就像框架本身一样。修正了错误,谢谢。