2011-07-02 61 views
0

在任何大型應用程序的正確方法我有這樣的問題:把一些用戶控件組件在窗口

我建立窗口的樣子,我希望它有例如菜單在左邊,中間等一些內容

現在,如果我要重用一些(大部分)的這個東西或者乾脆我不想讓這一切在一個XAML文件我該怎麼做呢?直到現在我用來做這個是這樣的:

  1. 我創建用戶控件+視圖模型對於那些部件(通常我需要主視圖拆分到兩個或三個組件)
  2. 在主窗口(XAML)我把:

    <DockPanel> 
         <ContentControl Content="{Binding Menu}" DockPanel.Dock="Left"/> 
         <ContentControl Content="{Binding MainStuff}"/> 
    </DockPanel> 
    
  3. 在主WindowViewModel我把:

    Menu = new MenuViewModel(); 
    MainStuff = new MainStuffViewModel(); 
    

有時候這些VModels不得不反駁到MainViewModel,但很少。

這種方法不是很好couse我在主窗口xaml編輯器中看不到我的設計(有時候我可以看到它,我不知道,visual可能試圖在編譯前進行綁定,但有時會失敗,我不想去想它:))

什麼是親的做法嗎?

回答

0

大型應用程序需要移動遠離它的整體形式是可重複使用,可組合 - 你正在尋找Prism。爲您的部分創建區域並將您的使用控制轉換爲視圖並注入它們。

1

你有一個相應的MenuView您MenuViewModel?

在這種情況下,你可以替換像下面的ContentControl中:

<DockPanel> 
     <prefix:MenuView DataContext="{Binding Menu}" DockPanel.Dock="Left"/> 
     <prefix:MainStuffView DataContext="{Binding MainStuff}"/> 
</DockPanel> 

這樣,你得到你的MenuView-和MainStuffView-的usercontrols

的設計視圖
相關問題