2016-01-02 122 views
0

我試圖將Microsoft/Master示例從Microsoft轉換爲MVVM。 (示例:https://github.com/Microsoft/Windows-universal-samples/tree/master/Samples/XamlMasterDetailUWP將VisualStateGroup的CurrentStateChanged綁定到ViewModel

在樣本中,CurrentStateChanged事件,必將有一部分代碼隱藏功能

MainPage.xaml中

<VisualStateGroup x:Name="AdaptiveStates" CurrentStateChanged="AdaptiveStates_CurrentStateChanged"> 

MainPage.xaml.cs中

private void AdaptiveStates_CurrentStateChanged(object sender, VisualStateChangedEventArgs e) 

如何我將它綁定到視圖模型?

當我嘗試將其綁定到一個屬性是這樣的:

MainPage.xaml中

<VisualStateGroup x:Name="AdaptiveStates" CurrentStateChanged="{Binding AdaptiveStates_OnCurrentStateChanged}"> 

MainPageViewModel.cs

public ICommand AdaptiveStates_OnCurrentStateChanged 
{ 
    get { throw new NotImplementedException(); } 
} 

的DataContext設置在代碼隱藏文件。

我獲得以下編譯錯誤:

\Microsoft.Windows.UI.Xaml.Common.targets(263,5): Xaml Internal Error error WMC9999: Object reference not set to an instance of an object.

這並沒有真正告訴我的什麼是錯的任何信息。任何人都有任何想法,爲什麼會出現這個錯誤或我如何能夠實現我的目

回答

0

我用x:Bind找到了我的解決方案。

步驟一:在代碼中聲明視圖模型作爲物業背後

MainPage.xaml.cs中

public MainPageViewModel MainPageViewModel { get; set; } 

第二步:AdaptiveStates_OnCurrentStateChanged的更改方法返回類型預期VisualStateChangedEventHandler

MainPageViewModel.cs

public VisualStateChangedEventHandler AdaptiveStates_OnCurrentStateChanged 

第三步:用X綁定功能:綁定

MainPage.xaml中

<VisualStateGroup x:Name="AdaptiveStates" CurrentStateChanged="{x:Bind MainPageViewModel.AdaptiveStatesOnCurrentStateChanged}"> 

我大概花了太多的時間搞清楚了這一點。我希望這至少能夠幫助那些陷入同樣問題的人。

相關問題