初心者質問。変数が変更されたときにイベントを生成し、コードクラスからフォームクラスcに送信します。#
コードクラス(CodeClassなど)とフォームクラス(FormClassなど)の2つのクラスがあります。 CodeClassには、クラス内の文字列を定期的に更新するために使用するいくつかの関数があります(プロパティなどを使用できます)。この文字列値が変更されたときに他のクラスに通知する何らかの方法が必要です。つまり、FormClassを購読して文字列メッセージのイベントを変更してから、その値をテキストボックスなどに印刷しようとします。しかし、将来的にはCodeClassからAPI関数を提供する必要があります - 基本的には、文字列メッセージ内のサブスクライブするクラスに通知する方法が必要です(文字列メッセージはではありません。はCodeClassの外に変更されます) CodeClass内の関数内で)。イベントやデリゲートなどで試してみましたが、これらはすべて文字列メッセージ(プロパティ)を変更する外部クラスによって実装されているようです。 FormClass
で
class CodeClass : INotifyPropertyChanged
{
private string _myProperty;
public string MyProperty
{
get { return _myProperty; }
set
{
_myProperty = value;
OnPropertyChanged("MyProperty");
}
}
#region INotifyPropertyChanged implementation
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
var handler = PropertyChanged;
if (handler != null)
handler(this, new PropertyChangedEventArgs(propertyName));
}
#endregion
}
、あなたがこのようなPropertyChanged
イベントをサブスクライブすることができます:あなたはINotifyPropertyChanged
インタフェースを実装する必要があり
よろしく、など
サイドノート、オブジェクトの機能に基づいてコントロールを更新するには、多くのコードを追加せずにすべてを行うDataBindingコントロールがあります。 – Alexandre