C# 由于数据上下文(WPF),无法连接视图
所以我的问题是,最初我在MainWindow.xaml类中得到了以下代码C# 由于数据上下文(WPF),无法连接视图,c#,wpf,mvvm,data-binding,view,C#,Wpf,Mvvm,Data Binding,View,所以我的问题是,最初我在MainWindow.xaml类中得到了以下代码 <Button Margin="10,20,10,10" Height="37" Command="{Binding AddCmd}">View all customers</Button> .... <TabControl x:Name="myTabs" ItemsSource="{Binding Wo
<Button Margin="10,20,10,10" Height="37" Command="{Binding AddCmd}">View all customers</Button>
....
<TabControl x:Name="myTabs" ItemsSource="{Binding WorkSpaces}" Height="323">
<TabControl.Resources>
<DataTemplate DataType="{x:Type viewmodel:AllCustomersViewModel}">
<views:AllCustomersView/>
</DataTemplate>
</TabControl.Resources>
<TabControl.ItemTemplate>
....
</TabControl.ItemTemplate>
</TabControl>
因此,基本上我想要的是,当我单击“查看所有客户”按钮时,它将向工作区列表添加一个新的AllCustomerViewModel,并在屏幕上显示AllCustomerView。
但是,我不能这样做。但是,当我删除MainWindow.xaml.cs类中的行“myTabs.DataContext=this.DataContext;”时,它就工作了!
有人能给我解释一下原因吗?因为我已经将AllCustomerView数据上下文设置为AllCustomerViewModel。我不明白为什么我的申请会出现这一行。
谢谢。假设
myTabs
是主窗口可视树中的一个元素,则分配myTabs.DataContext=this.DataContext代码>一开始似乎是无用的。默认情况下,DataContext属性值由所有子元素继承。起初,我添加它们是为了调试。
public MainWindow()
{
InitializeComponent();
this.DataContext = new DemoWPFApp.ViewModel.MainWindowViewModel();
myTabs.DataContext = this.DataContext; //that is where the problem is
}