C# 在发生变量时调用函数的最佳方式';s值是否已更改?

C# 在发生变量时调用函数的最佳方式';s值是否已更改?,c#,winforms,triggers,event-handling,inotifypropertychanged,C#,Winforms,Triggers,Event Handling,Inotifypropertychanged,假设我有一个int索引=0。用户可在程序的任何位置更改此值。当它出现时,我需要将所有屏幕更新为与新索引值相关的数据。我有一个函数,我只是想知道如何调用它 我的想法是创建一个计时器,并在每个滴答声事件上检查变量Index的值是否已更改。如果是,则执行我的函数。但我觉得这真的很业余。必须有更直接的东西,对吗?我听说过“INotifyPropertyChanged”之类的东西,但我很难找到一个可靠的例子来说明它是如何工作的 非常感谢您的任何想法。您可以使用事件并订阅它,然后在处理程序中调用该方法。您将

假设我有一个
int索引=0。用户可在程序的任何位置更改此值。当它出现时,我需要将所有屏幕更新为与新索引值相关的数据。我有一个函数,我只是想知道如何调用它

我的想法是创建一个计时器,并在每个滴答声事件上检查变量
Index
的值是否已更改。如果是,则执行我的函数。但我觉得这真的很业余。必须有更直接的东西,对吗?我听说过“INotifyPropertyChanged”之类的东西,但我很难找到一个可靠的例子来说明它是如何工作的


非常感谢您的任何想法。

您可以使用事件并订阅它,然后在处理程序中调用该方法。您将按如下方式创建事件:

public event IndexChangedEventHandler IndexChanged;
public delegate void IndexChangedEventHandler(int newValue);

protected virtual OnIndexChanged(int newValue)
{
    if (IndexChanged != null)
        IndexChanged(newValue);
}
然后使用属性包装索引字段并调用其中的事件:

private int _index;
public int Index
{
    get
    {
         return _index;
    }
    set
    {
        _index = value;
        OnIndexChanged(value);
    }
}
然后,您只需订阅活动,如:

IndexedChanged += new IndexChangedEventHandler(IndexChanged_EventHandler);

private void IndexChanged_EventHandler(int newValue)
{
    //call your update method here
}

您可以使用事件并订阅它,然后在处理程序中调用该方法。您将按如下方式创建事件:

public event IndexChangedEventHandler IndexChanged;
public delegate void IndexChangedEventHandler(int newValue);

protected virtual OnIndexChanged(int newValue)
{
    if (IndexChanged != null)
        IndexChanged(newValue);
}
然后使用属性包装索引字段并调用其中的事件:

private int _index;
public int Index
{
    get
    {
         return _index;
    }
    set
    {
        _index = value;
        OnIndexChanged(value);
    }
}
然后,您只需订阅活动,如:

IndexedChanged += new IndexChangedEventHandler(IndexChanged_EventHandler);

private void IndexChanged_EventHandler(int newValue)
{
    //call your update method here
}

我想一个解决办法是创建一个函数,让您更改整数并立即更新屏幕。我很确定有更好的选择,但请提供我们您在UI中使用的信息?是WinForms、WPF还是Web?INotifyPropertyChanged与WPF连接,但您是否实际使用它?从描述中很难判断。不,我不知道如何使用它,这是winforms,我将更改标记。我想解决方法是创建一个函数,允许您更改整数并立即更新屏幕。我很确定有更好的选择,但请提供我们您在UI中使用的信息?是WinForms、WPF还是Web?INotifyPropertyChanged与WPF连接,但您实际使用它吗?从描述很难判断。不,我真的不知道如何使用它,这是winforms,我将更改标记