2012-04-16 6 views
1

私はMVVMパターンを使用してWPFアプリケーションを持っています。私は自分のプロジェクトにウィンドウを持っていて、私のウィンドウにCustomControlを使っています。 CustomControlで開始と停止のために私のウィンドウに2つのコマンドが必要です。だから私はこのようなbool DependencyPropertyを使用します。変更後にメソッドを呼び出す方法DependencyProperty

方法以下も
public static readonly DependencyProperty IsStartModeProperty = DependencyProperty.Register(
    "IsStartMode", typeof(bool), typeof(RadarView), new FrameworkPropertyMetadata(false, OnCurrentReadingChanged)); 

public bool IsStartMode { 
    get { return (bool)GetValue(IsStartModeProperty); } 
    set { SetValue(IsStartModeProperty, value); } 
} 

は、コールバックデリゲートのために使用することは、私の依存関係プロパティである:

public static void OnCurrentReadingChanged(DependencyObject doj, DependencyPropertyChangedEventArgs dp) { 
    if (IsStartMode) 
     Start(); 
    else 
     Stop(); 
} 

私の問題は、アップ方式でIsStartModeプロパティから使用されている、これがあるため、静的ではありません。それはビルドエラーがあります。

解決策はありますか?私がしていることが正しければ?

答えて

4

あなたの依存関係オブジェクトクラスに最初のメソッドの引数をキャストする必要があります。

public static void OnCurrentReadingChanged(DependencyObject doj, DependencyPropertyChangedEventArgs dp) 
{ 
    var myObject = (RadarView)doj; 

    if (myObject.IsStartMode) 
     myObject.Start(); 
    else 
     myObject.Stop(); 
} 

(注意点として、私はプロパティIsRunningを呼ぶだろう。)

関連する問題