1

在 .NET(和 WPF)中,我需要监视Timespan不包含任何更改事件(如PropertyChanged. 添加此功能的最佳方法是什么?

4

1 回答 1

4

假设您将 公开Timespan为类的属性,您可以INotifyPropertyChanged像这样实现:

public class MyClass : INotifyPropertyChanged
{
    private Timespan _timespan;

    public event PropertyChangedEventHandler PropertyChanged;

    public Timespan Timespan
    {
        get { return _timespan; }
        set
        {
            Timespan oldValue = _timespan;
            _timespan = value;

            if(oldValue != value)
                OnPropertyChanged("Timespan");
        }
    }

    protected void OnPropertyChanged(string propertyName)
    {
        PropertyChangedEventHandler @event = PropertyChanged;

        if(@event != null)
            @event(
                this, 
                new PropertyChangedEventArgs(propertyName ?? string.Empty)
                );
    }
}

对属性的任何更改值分配都Timespan将引发预期事件。

于 2010-04-24T20:27:55.030 回答