2014-12-04 66 views
0

有點傻的問題,但不知何故,我無法找到如何將Window或其Content(如Grid面板)的DataContext結合(在下面我舉例說,ViewModel)的Window的一個特定屬性:如何將Window或其子的DataContext綁定到Window的一個特定屬性?

代碼:

internal partial class MyWin : Window 
{ 
    public MyViewModelType ViewModel { get; set; } 
    ... 
} 

XAML:

<Window x:Class="MyNs.MyWin" 
     ... 
     DataContext="{Binding RelativeSource={RelativeSource Self}}" /> 

    <Grid DataContext={Binding ViewModel}> <!-- doesn't work??? --> 
     ... 
    </Grid> 
</Window> 
+1

'ViewModel'屬性是否會引發'INPC.PropertyChanged'事件?如果不是,你什麼時候改變它?它是否在'InitializeComponent()'之後? – dkozl 2014-12-04 12:24:17

回答

0

我認爲你有這個周圍的錯誤的方式

,如果你的窗口不會的掛鉤,將工作好嗎

public partial class MyWindow 
{ 
    public MyWindow() 
    { 
     InitializeComponent(); 
     DataContext = ViewModel = new MyViewModelType(); 
    } 
} 
0

請在視圖模型定義字段,因爲它沒有改變和實施INPC

private MyViewModelType viewmodel; 

    public MyViewModelType ViewModel 
    { 
     get 
     { 
      if(viewmodel == null) 
      { 
       viewmodel = new MyViewModelType(); 
      } 
      return viewmodel; 
     } 
     set 
     { 
      viewmodel = value; 
      OnPropertyChanged("ViewModel") 
     } 
    } 

休息的代碼保持不變。

相關問題