2012-03-11 10 views
0

私は独自のクラスを作成しました。これは、ダブルデータ型XとYのパブリックプロパティを持ちます。これらの1つが変更されると、イベントが発生してキャンバスのようなビジュアルオブジェクトの位置を更新しますか何か。私はオンラインで回答を探してきました。私は本当にそれを正しく行う方法を理解していません。私はプログラミングに慣れていないし、人々がINotifyPropertyChangedについて言及しているのを見たことがあるが、それを使う方法やものを置く場所がわからない。プロパティが変更されたときにカスタムイベントを作成する方法は?

は、私はXまたはYがXとYのプロパティを呼び出すことができますのセッターで、私は...あなたのビューモデルクラス内

答えて

0

を助けてくださいする方法を添付することができた変更を取得するときに発生するイベントをしたいあなたアップデート方法:

public double X 
    { 
     get 
     { 
      return x; 
     } 
     set 
     { 
      if (value != x) 
      { 
       x= value; 
       OnPropertyChanged("X"); 
       VisualObjectUpdateMethod(); 
      } 
     } 
    } 
    private double x; 

ロジック更新したいものは何でも更新することは、その後VisualObjectUpdateMethodに配置されることになります。

0

あなたがやりたいものは何でもした場合、あなただけのセッターを使用することができ、同じクラスの一部です:

public class Something 
{ 
    private string _Message; 
    public string Message 
    { 
     get { return _Message; 
     set 
     { 
      if (_Message != value) 
      { 
       _Message = value; 
       CallSomeMethod(); 
      } 
     } 
    } 

    public void CallSomeMethod() 
    { 
     Debug.WriteLine("Message is now: " + Message); 
    } 
} 
+0

、それは私がWindsurfer25 @ – Windsurfer25

+0

は、この使用することがあります別のクラスの変更トリガするために使用できる火災にイベントを必要とする理由です、同じクラスの一部ではありませんします。http://のstackoverflowを。 com/questions/6644247/simple-custom-event-c-sharp – John

0

あなたはDelegates and Events

MSDNにもかなりのものですexampleを持っているを学ぶ必要がありますあなたは尋ねている

同じページからこれは関連するセクションです。

public void Update(double d) 
    { 
     radius = d; 
     area = 3.14 * radius * radius; 
     OnShapeChanged(new ShapeEventArgs(area)); 
    } 
    protected override void OnShapeChanged(ShapeEventArgs e) 
    { 
     // Do any circle-specific processing here. 

     // Call the base class event invocation method. 
     base.OnShapeChanged(e); 
    } 
関連する問題