2014-12-04 1 views
0

Немного глупый вопрос, но почему-то я не могу найти, как связать DataContext из Window или его Content (например, Grid панели) к одному конкретному свойству Window (скажем, ViewModel в моем примере ниже):Как связать DataContext окна или его дочернего элемента с одним конкретным свойством окна?

Код:

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

ответ

0

Я думаю, что у вас есть это неправильный путь вокруг

если окно делает подключение, он будет работать нормально

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

Уточнитните поле для ViewModel, поскольку она не меняется и реализовать INPC

private MyViewModelType viewmodel; 

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

Rest кода остается неизменным ,

Смежные вопросы