2012-04-16 58 views
1

我有一個WPF應用程序使用MVVM模式。我在我的項目中有一個窗口,並在我的窗口中使用CustomControl。 我需要在我的CustomControl開始和停止窗口中有兩個命令。所以我用一個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

相關問題