我的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>
答案 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"/>