2013-01-08 33 views
0

我有以下幾點看法示例應用程序:UnityContainer新實例

  1. 主窗口
  2. NewCustomer
  3. CustomerStep1
  4. CustomerStep2
  5. 首頁

我使用統一登記App.xaml.cs.中的類型

我有構造函數的參數如下:

主窗口(NewCustomer,首頁)

NewCustomer(CustomerStep1,CustomerStep2)

的主窗口下面的XAML

<DockPanel> 
    <ToolBar DockPanel.Dock="Top" ToolBarTray.IsLocked="True"> 
     <Button Content="Home" Height="50" VerticalContentAlignment="Bottom" Width="100" Click="Button_Click" /> 
     <Button Content="New Customer" Height="50" VerticalContentAlignment="Bottom" Width="100" Click="Button1_Click" /> 
    </ToolBar> 
    <ContentControl x:Name="mainRegion" /> 
</DockPanel> 

我有它們中的每一個的viewmodels和所有工作都很好。

我遇到的問題是當我單擊新客戶並在步驟1和步驟2中輸入信息,然後單擊主頁並再次單擊新客戶時數據未被清除。如何清除這些對象的數據。主窗口的背後

碼我用:

private void Button_Click(object sender, RoutedEventArgs e) 
    { 
     mainRegion.Content = null; 
     mainRegion.Content = _homeView; 
    } 

    private void Button1_Click(object sender, RoutedEventArgs e) 
    { 
     mainRegion.Content = null; 
     mainRegion.Content = _newCustomerView; 
    } 

如果我從移動新的客戶視圖路程,再次點擊新客戶,我希望的形式是新的。但它沒有發生。

感謝您的幫助!

+0

我能夠清除數據,如果我通過我的容器的主窗口,並使用該container.Resolve <>解決HomeView和NewCustomerView。我不確定這是否是一個很好的做法,通過容器周圍。 – isakavis

回答

0

你是怎麼註冊的?你使用過什麼樣的生活經理?

這也可能有助於 - http://msdn.microsoft.com/en-us/library/ff660872(v=pandp.20).aspx

+0

我使用默認的(不指定任何),我看到的是TransientLifetimeManager。我看到的問題是MainWindow還活着,這就是爲什麼它不能再解決。它給了我以前輸入的值相同的對象。如果我將Container傳遞給MainWindow並進行解析,那麼它將清除它。目前我對解決方案不滿意。與此同時,我正在研究棱鏡樣本的UI組成和導航,以瞭解區域經理和視圖如何工作。 – isakavis

+0

@ user1549435好吧,你似乎知道你在做什麼!Id強烈推薦PRISM,它是一款功能強大且功能強大的工具包 – Steoates

+0

感謝您的建議和鏈接。正如我現在看到的那樣,在PRISM中理解很多。希望我會弄清楚:) – isakavis