Shell StatusBar UserControl通信

时间:2010-04-16 15:15:38

标签: wpf

我有一个wpf主窗口作为包含状态栏和带有两个选项卡项的选项卡控件的应用程序shell。 我还有两个用户控件及其使用MVVM的View Model对象。 我将每个用户控件放在应用程序shell中的选项卡项上。

我的问题是,我希望用户控件更新主shell上的状态栏。处理这个问题的最佳方法是什么?

谢谢

2 个答案:

答案 0 :(得分:0)

我有同样的问题。 我不确切知道最好的方法是什么,但这是我的猜测:

对我来说,应用程序类(我的意思是覆盖它)不适合放置它,因为它太中心了。状态是每个窗口(对话框)。 然后,你可以将它放在Window的模型中,但这是另一个坏主意(我的意见),因为你必须修改你的模型以获得非常虚拟(状态)的东西。 Personnaly,但我可能真的错了,我决定直接在父窗口中声明一个方法。任何属于该窗口一部分的任何模型(如果有的话)都可以(最好在初始化时)尝试找到方法(反射)并为其分配一个委托。每当您想要更新状态时,您都会验证您的委托是否为空,如果不是,则调用它。委托可以是:SetStatus(字符串状态)。它并不完美,但它似乎尊重你的凝聚力和低耦合......

希望它有所帮助。 埃里克

答案 1 :(得分:0)

BXF (基本XAML框架)

http://bxf.codeplex.com/

来自BXF文档页面:

  

在最简单的形式中,Bxf充当消息或请求路由器   应用程序代码到演示者处理程序。

     

这个想法是你的应用程序代码,通常是你的viewmodel代码,   需要做一套基本的事情:

     
      
  1. 显示观点
  2.   
  3. 列表项
  4.   
  5. 显示状态信息
  6.