2011-03-09 91 views
0

作为WPF的新来者,我想澄清一下我在WPF中构建UI的方法。我正在使用MVVM和MVVM。我的方法是使用一个包含用户控件的主窗口,该用户控件可以在UI树中运行几个级别。例如,我在窗口中有一位编辑。许多项目可以在编辑器中编辑,每个项目的用户界面都不同,但编辑器始终显示“确定”和“取消”按钮。所以OK和Cancel的主编辑器窗口可以在几个编辑器之间共享。我以这样的方式设计应用程序,即编辑器用户控件只会绑定编辑项目的视图模型。所以当设计用于编辑单个项目的用户界面时,确定或取消按钮没有拉入,只需将该项目放入主编辑器中,该编辑器将提供按钮。我很确定我可以使用WPF命令基础结构正确处理这些命令。WPF用户控件的UI设计

如果我可以用xaml在这里清楚它是。请不要介意控件布局本身,我的意思是解释共享许多项目的通用用户界面的基本思想。

<UserControl Name="EditorMainWindow"> 
<Grid> 
    <StackPanel> 
     <ItemsControl ItemsSource="{Binding ItemToBeEdited}">     
     </ItemsControl> 
     <Button Content="OK" Width="120" Command="{Binding SomethingforOK}" /> 
     <Button Content="Cancel" Width="120" Command="{Binding SomethingforCancel}"/>   
    </StackPanel>    
</Grid> 
</UserControl>  

我这样做的方式,用户界面树可以深入几个级别。我会受益匪浅,因为如果客户要求在一个特定的地方更换用户界面,我不需要在许多地方修改它(只要它是共享的)。

由于我是WPF的新手,我想知道这种方法是否有任何问题。你能告诉我这是否合理吗?

回答

1

你可以节省很多时间。 Catel已经提供了这样的窗口:

DataWindow

它是完全准备好MVVM(Catel也是MVVM框架),其支持动态嵌套用户控件。好的是,它也支持开箱即用的错误处理,所以只要窗口模板发生错误,用户就会在InfoBarMessageControl中看到错误。

+0

谢谢。但是,由于应用程序已经存在一段时间,所以我对使用框架有点犹豫。恭喜,卡特尔看上去不错。 – Jimmy 2011-03-09 13:15:42

+0

你不必使用整个框架,你可以使用它的一些想法(因为我们已经走过了很多问题)。 祝你好运,修复应用程序,这是一个真正的好主意,创建基本模板(为什么不微软拿出这个基本的东西?)。 – 2011-03-09 14:41:08

+0

点。看着凯特尔。再次感谢你。 – Jimmy 2011-03-09 16:41:53