2010-09-07 31 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) 
} 

当然的成员,该包装特性变得更加容易。那么你可以简单地用相同的方式包装这个值。

这种方法当然有各种可扩展性问题,并且是相当严格的类限制,但我发现它在某些情况下很有用。

相关问题