如何制作一个等待某些条件的功能?

时间:2018-04-30 23:00:00

标签: c#

新手到C#,在课堂上学习制作Windows窗体。在这里,我发现自己有一种情况。我有几个按钮,在特定条件下激活和停用。有没有办法创建一个函数,等待一个变量获得一些特定的值来actvate?例如,只要bool成立,按钮就会激活,只要它变为假,它们就会停用。我想要一些帮助,或者一些tuto来学习(寻找一些,但没有找到我想要的东西)。

3 个答案:

答案 0 :(得分:0)

有很多方法可以解决这个问题。

更高级的是通过INotifyPropertyChanged接口使用ChangeNotification。这个在MVVM模式下大量用于WPF / UWP。

但是,任何Command模式都可以正常工作。命令是抽象。命令可以与热键组合,按钮,菜单项,手势(如翻转yoru手机)或所有这些同时相关联。

ICommand接口定义了“canExecute”和“Execute”功能。您需要定期轮询canExecute以更新按钮状态。但是常规可以低至“每秒60次”或“仅当您明确要求更新”时。但是它很少使用,因为它是为不推荐的Windows RT运行时定义的。

答案 1 :(得分:0)

我发布了一个答案,因为其他的回答者看起来非常难或不可能。
使用名为property的c#功能非常容易。属性是围绕字段的getter和setter方法的语法糖。

在你的情况下,你想要这样的东西:

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;
}

答案 2 :(得分:-1)

在您的舞台上,最适合您的解决方案如下:

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.
}