我正在嘗試MVVM模式,並且遇到了問題。Win8應用程序疑難解答:我的XAML定義的頁面字段何時初始化?
以下是我對我的實例化模型:
<common:LayoutAwarePage
...
...(omitted boiler plate generated lines here)
...
...
mc:Ignorable="d">
<common:LayoutAwarePage.DataContext>
<local:TextGameClientModel x:Name="textGameClientModel"/>
</common:LayoutAwarePage.DataContext>
但是當我嘗試使用它,我得到一個的NullReferenceException因爲this.textGameClientModel是NULL:
public MainPage()
{
this.InitializeComponent();
this.textGameClientModel.runsPublished += textGameClientModel_runsPublished;
}
我我們也嘗試了頁面的處理器中的同一行,並且也在OnLoaded處理程序,但具有相同的結果。
哪裏是正確的地方掛鉤我的事件處理程序?
(請不要讓我的代碼隱藏在MVVM項目分散你的注意力從這個問題。我的一個RichTextBox的使用迫使我行一個小框框。)
那麼我不完全明白它,但它肯定有效。非常感謝! :) – BigScary
@BigScary DataContext是UI層後面的數據層,當你進行綁定時,UI層通常會引用它。實際上,我在我的博客上有一篇文章,它簡單地解釋了「DataContext」的含義。 [你說的這個「DataContext」是什麼?](http://rachel53461.wordpress.com/tag/wpf-datacontext/)如果你是WPF的新手,你會覺得很有用:) – Rachel