public Page2() { InitializeComponent(); Loaded += (sender, e) => { DataContext = new Page2ViewModel(this); }; }解釋一下為什么要這樣寫。因為是使用MVVM的時候,UI與業(yè)務邏輯解耦,此時頁面之間通訊的時候就很難獲得傳遞的參數(shù)。所以我想到把NavigateContext,NavigateService等屬性從View層傳入到VM層,這樣就可以在VM層使用NavigateContext解析URL中的QueryString,使用NavigateService實現(xiàn)導航,并且獲取BackStack集合等等操作。這樣得到了View的Page的引用就能很容易在VM層處理導航和獲取查詢字符串了,但是由于我剛開始學習MVVM,不知道這樣會不會違背了MVVM的思想,請各位指正
1 回答

蕭十郎
TA貢獻1815條經(jīng)驗 獲得超13個贊
樓上沒理解我的意思(我沒表達清楚)MVVM的思想是View與ViewModel解耦,但是我卻傳入了View對象的引用,由于需要傳入View對象的引用,所以ViewModel的構造將晚于View(所以我在Loaded中才創(chuàng)建ViewModel)。
- 1 回答
- 0 關注
- 752 瀏覽
添加回答
舉報
0/150
提交
取消