2010-09-07 32 views
1

實現基於窗口當前狀態/模式的控件行爲的最佳方式(在WPF應用程序中,C#)是什麼?WPF應用程序 - 如何處理窗口中控件的模式/狀態?

例如,假設模式可能只是簡單的離線,例如在線。因此,離線時,您希望配置輸入控件處於活動狀態,但是一旦處理開始(ONLINE),您就希望這些控件灰顯。

任何建議重新模式/方法來管理呢?我想知道是否有最好的發佈/訂閱方法,或者只是創建一個像「SetStatus」這樣的幫助方法,並從這裏開始對所有控件進行調用。

感謝

回答

3

我的一切包括你的配置輸入控件到檢查當前狀態/模式的布爾值IsEnabled屬性綁定。

這種方法的缺點是每次模式改變時都需要調用這個屬性。但是,這可以通過,如果你的模式是布爾型,如在線/離線使用圍繞可變

//Assumes your mode enum is defined and named WindowModes 
private WindowModes m_CurrentMode; 
public WindowModes 
{ 
    get { return m_CurrentMode; } 
    set 
    { 
     m_CurrentMode = value; 
     if (PropertyChanged != null) 
      PropertyChanged(this, new PropertyChangedEventArgs("CanConfigure")); 
    } 
} 

public bool CanConfigure 
{ 
    return(WindowMode == WindowModes.Online) 
} 

當然的成員,該包裝特性變得更加容易。那麼你可以簡單地用相同的方式包裝這個值。

這種方法當然有各種可擴展性問題,並且是相當嚴格的類限制,但我發現它在某些情況下很有用。

相關問題