2011-07-02 34 views
0

我有道德问题:) 我在WPF中创建自己的控件(派生UserControl)。现在有两种方式:在WPF中创建自己的UserControl的正确方法(Csharp)

  1. 我使用一个XAML和一个CS文件,有没有我的东西都
  2. 我忠于MVVM和创建一个XAML和CS文件的用户控件加一个CS文件因为它的View Model和我正在使用MVVM技术。 然后,我必须用我的控制是这样的: 在XAML:

    <ContentControl Content={Binding MyControl.... 
    

    在代码:

    MyControl = new MyControlViewModel() 
    

直到现在我用第二种方法,但现在我读了一些明智的文章,它似乎很多人使用第一。 所以我应该在创建控件的同时混合视图和逻辑?当然,我将MVVM保留在应用程序的其他部分(我试图将所有逻辑材料保留在视图模型中)。 Couse恐怕我的cs文件太长了。

回答

1

我的观点是,根据经验,任何需要显式虚拟机的东西不仅仅是一个控件,它已经是一种组件。这些控件应该相当简单,并且没有高级业务逻辑。如果你看到你的代码需要一个虚拟机,你可以说你已经写了一个组件,所以为它创建一个单独的虚拟机类没有问题。

+0

谢谢弗拉德那个答案。我现在意识到我不想创建新的控件:)请检查我的新帖子:http://stackoverflow.com/questions/6557193/right-way-to-put-few-usercontrol-components-on- a-window –

+0

不客气!对于你的新问题,我第二个Tendlon的答案是:使用“小型”虚拟机作为菜单和主要内容,并将它们放到主窗口的虚拟机中。对于没有插件的小型应用程序来说,使用Prism似乎是一个过分的矫饰。 – Vlad

+0

应该标记为答案。 –