3 回答
TA贡献1873条经验 获得超9个赞
我发布答案是因为其他答案使它看起来非常困难或不可能。
使用称为属性的ac#功能,这非常容易。属性是围绕领域的吸气和塞装方法的语法糖。
在您的情况下,您需要这样的东西:
private bool _isActive;
public bool IsActive
{
get { return _isActive; }
set
{
_isActive = value;
if (value) // if the value assigned is true
{
someButton.IsEnabled = true; // enable a button, for example
}
}
}
然后,您可以像这样使用它:
public void SomeButtonClick(object sender, EventArgs e)
{
IsActive = true;
}
TA贡献1829条经验 获得超4个赞
有很多解决方法。
更高级的一种是通过INotifyPropertyChanged接口使用ChangeNotification。这是在MVVM模式下的WPF / UWP中大量使用的。
但是,任何命令模式都可以使用。命令是抽象的。命令可以与热键组合,按钮,菜单项,手势(例如,翻转yoru移动电话)或所有这些都关联。
ICommand接口定义了“ canExecute”和“ Execute”功能。您需要定期轮询canExecute来更新按钮状态。但是常规可以降低到“每秒60次”或“仅当您明确要求进行更新时”。但是,由于它是为不推荐使用的Windows RT运行时定义的,因此很少使用。
TA贡献1786条经验 获得超13个赞
在您的阶段,最适合您的解决方案如下所示:
if(FunctionWhichHasSomeCondition(SomeVariables)
{
if conditions met, activate or deactivate button.
}
..
public bool FunctionWhichHasSomeCondition(somevariable)
{
//Some conditions to be met. if met return true else return false.
}
- 3 回答
- 0 关注
- 131 浏览
添加回答
举报