2010-08-18 69 views
1

這一直給我一段時間的痛苦。將視圖注入容器MVVM WPF

我知道棱鏡可以將視圖插入區域,但是有沒有一種方法可以在視圖第一基礎上與Cinch做類似的事情?例如,我有一個容器(實際上是一個區域),它可以在運行時包含任何視圖 - 我不特別想在XAML中顯式設置視圖,因爲這會加載它,並且有點混亂。有沒有我可以使用的容器?我會怎麼做呢? (不一定是Cinch具體..)

謝謝。

回答

1

爲了回答我自己的問題,我發現Prism v4提供了一個有用的解決方案 - 稱爲RequestNavigate的RegionExtension。

我已經使用RequestNavigate打開一個新窗口(查看StockTrader RI),但是如果遵循適當的MVVM方法,這看起來非常麻煩。相反,我決定在WPF Extended Toolkit中使用ChildWindow類,在那裏你可以純粹綁定到'WindowState'(open/closed)屬性,並在XAML中指定其他所有內容。

我也使用RequestNavigate將視圖注入區域 - 我現在使用MEF(當時我正在使用Unity)。如果對調試有一點「魔力」,我發現這種方法更加靈活。