用户控件中的 DataContext 到 DataGrid

DataContext to DataGrid in user control

我有一个带有 tabcontrol 的主 window。 添加带有用户控件内容的新 tabitem。 在 xaml:

    <Grid><DataGrid  DataContext="{Binding Path=Patients, Mode=TwoWay}">
            <DataGrid.Columns>
            <DataGridTextColumn Header="Id"
                                Width="Auto"
                                Binding="{Binding Id}"/>

在后面的代码中: 打开上下文,

 var query = from pp in context.Patients select pp;
 var Patients = query.ToList();        
 TabItem patientsView = new TabItem(); // adding new tabitem
 StackPanel header = new StackPanel
 header.Children.Add(new TextBlock {Text="Patients"});
 patientsView.Header = header;
 patientsView.Content = new ViewDataPatients{DataContext = Patients};

它拒绝将绑定数据填充到网格。 知道我哪里做错了吗?

无法理解您为什么需要这种方法,但仍然如此。您已将 UserControl 的 DataContext 设置为 Patiense,因此 DataGrid 已经拥有此数据上下文,满足以下条件:

<DataGrid DataContext="{Binding}">

但这对你来说是多余的。要用数据填充 DataGrid,只需设置 ItemsSource:

<DataGrid ItemsSource="{Binding}">

希望对您有所帮助。

国王问候纳扎尔