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 に答える