我在XAML一個ContentControl中定義爲:ViewModelLocator.LocateForView返回新的示範,而不是模型ContentControl中勢必
<ContentControl Micro:View.Model="{Binding ProductionGrid}" />
我使用View.Model作爲控制被嵌入在對接面板。
我的ViewModel具有定義的屬性,它在ViewModel的構造函數中設置,並使用構造函數注入來創建實例。
視圖被實例化,但我無法訪問在ViewModel中創建的模型,它似乎創建一個新模型,當試圖從視圖的xaml.cs構造函數獲取實例時。
var model = Caliburn.Micro.ViewModelLocator.LocateForView(this) as DynamicDataGridViewModel;
如何正確獲取應該與創建時視圖關聯的模型?
我確實嘗試過使用ContentControl名稱參數,但是,無論出於何種原因它都不起作用。對接面板是第三方。 問題是,視圖被創建,但沒有「附加」到ViewModel足夠早,我可以從視圖構造函數訪問它(也不是真的)。 通常我不會嘗試在xaml.cs中編碼,但是我試圖重新使用控件而不是重新編寫它。 最後,我讓我的ViewModel派生自ViewAware,並使用OnViewAttached來做我所需要的。無論如何,我確實必須重寫很多控件。 – tracstarr