如何在MainWindow.xaml中绑定几个ViewModel?

时间:2013-09-08 13:59:22

标签: c# wpf xaml mvvm

我的wpf Mvvm项目中有一个MainViewModel和一个OtherViewModel。 在MainWindow.Xaml中,我将MainViewModel设置为Grid的DataContext。但是,我想将OhterViewModel设置为TextBox控件的DataContext,它位于Grid中。我该如何实现它? xaml代码为fallows。

<Window.Resources>
    <viewModels:MainWindowViewModel x:Key="Windows1ViewModel" /> 
</Window.Resources>    
<Grid DataContext="{StaticResource Windows1ViewModel}">
   .....
    <TextBox "require to bind OtherVeiwModel here"/>
   .....
</Grid>

1 个答案:

答案 0 :(得分:2)

  <Window.Resources>
     <viewModels:MainWindowViewModel x:Key="Windows1ViewModel" /> 
     <viewModels:OtherViewModel x:Key="OtherViewModel" /> 
  </Window.Resources>    

  <Grid DataContext="{StaticResource Windows1ViewModel}">
     <TextBox DataContext="{StaticResource OtherViewModel}" "require to bind OtherVeiwModel here"/>
  </Grid>

或者,您的MainViewModel可能会保留对OtherViewModel的引用,您可以将TextBox的DataContext绑定到该备用视图模型。

CS:

  public class MainViewModel 
  {
       public OtherViewModel OtherViewModel{get {retrurn new OtherViewModel();}}
  }

XAML:

  <TextBox DataContext="{Binding OtherViewModel, Mode=OneWay}" "require to bind OtherVeiwModel here"/>