带用户控件的WPF UI设计

时间:2011-03-09 12:31:28

标签: wpf user-controls wpf-controls

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

如果我能在这里用一些xaml清楚说明它。请不要介意控件放置本身,我的意思是解释在许多项目中共享Common UI的基本思路。

<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 个答案:

答案 0 :(得分:1)

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

DataWindow

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