2016-06-30 8 views
0

私はシナリオ内にクラスAのクラスBのインスタンスを作成する2つのクラスを持っています(例:AとB)。クラスBのSettingsプロパティの値が更新されるたびに、クラスAのSettingsプロパティの値をすぐに更新する必要があります。私はDependencyPropertyを使用してこれを行うことができますが、現時点では苦労しています。ここで依存プロパティーを使用してプロパティー値を更新する

は、クラス構造です:

public class A 
    { 
     public Settings Settings { get; set; } 
    } 

    public class B 
    { 
     public Settings Settings { get; set; } 
    } 

    public enum Settings 
    { 
     Hidden, 
     Visible 
    } 

ここで依存関係プロパティを実装するに私の試みです。

public class A : DependencyObject 
{ 
    public static readonly DependencyProperty SettingsProperty = 
    DependencyProperty.RegisterAttached("Settings", typeof(Settings), typeof(A), 
    new FrameworkPropertyMetadata(Settings.Visible, new PropertyChangedCallback(SettingsChanged))); 

    public Settings Settings 
    { 
     get { return (Settings)GetValue(SettingsProperty); } 
     set { SetValue(SettingsProperty, value); } 
    } 

    private static void SettingsChanged(DependencyObject o, DependencyPropertyChangedEventArgs e) 
    { 
     // Update the Settings property of class B 
    } 
} 

public class B : DependencyObject 
{ 
    public static DependencyProperty SettingsProperty; 
    public Settings Settings 
    { 
     get 
     { 
      return (Settings)GetValue(SettingsProperty); 
     } 
     set 
     { 
      SetValue(SettingsProperty, value); 
     } 
    } 
} 

しかし、私はそれを動作させるように見えることはできません。助言がありますか?

+0

詳細はこのリンクをクリックします。バインディングは双方向でも可能です。 – Clemens

答えて

0

私は、主な問題は、依存関係プロパティは、DependencyObjectの

プロパティは、DependencyObjectのクラスから継承しなければならない依存関係を定義するクラスを継承していないクラスのために/で宣言されていることであると信じています。 XAMLで使用されるUIコントロールクラスの多くは、DependencyObjectクラスから派生し、依存プロパティをサポートしています。 Buttonクラスは、IsMouseOver依存関係プロパティをサポートしています。

チェックあなたは2つの設定のプロパティ間の結合を作成することができWPF - Dependency Properties

+0

私は実際にDependencyObjectからクラスを継承しています。私はちょうどコードスニペットでそれらを追加していません。今更新されました。 –

+0

@RahulVijayDawdaこの場合、小さなサンプルプロジェクトを使用すると、問題をよりよく把握できます。問題を再現し、レビューのために提供できる実行可能なサンプルプロジェクトを作成できますか? – pushpraj

関連する問題