C# DataTable未绑定到DataGrid的DataContext

C# DataTable未绑定到DataGrid的DataContext,c#,wpf,datagrid,observablecollection,datacontext,C#,Wpf,Datagrid,Observablecollection,Datacontext,我有一个数据网格,遵循XAML: <DataGrid ItemsSource="{Binding Path=propCollection}" SelectedItem="{Binding Path=SelectProp, Mode=TwoWay}" Margin="-1,159,0,0" RowDetailsVisibilityMode="Visible" AreRo

我有一个
数据网格
,遵循XAML:

    <DataGrid ItemsSource="{Binding Path=propCollection}"
              SelectedItem="{Binding Path=SelectProp, Mode=TwoWay}"
              Margin="-1,159,0,0" 
              RowDetailsVisibilityMode="Visible" 
              AreRowDetailsFrozen="False" 
              CanUserReorderColumns="False" 
              CanUserSortColumns="True" 
              CanUserResizeRows="False"  
              SelectionUnit="FullRow" 
              AlternatingRowBackground="{x:Null}" 
              SelectionChanged="dgProprietarios_SelectionChanged"
              AlternationCount="0"
              Height="200" 
              HorizontalAlignment="Left"
              Name="dgProprietarios" 
              VerticalAlignment="Top" 
              Width="645" 
              AutoGenerateColumns="False">
                 <...Columns...>
    </DataGrid>

在加载的窗口上,我执行以下操作:

dgProprietarios.DataContext = new ProprietariosViewModel(new Dictionary<string, string>());
public CollectionProprietarios propCollection { get; set; }

public ProprietariosViewModel(Dictionary<string, string> Where)
{
    propCollection = new CollectionProprietarios(Where);
}
dgProprietarios.DataContext=newproprietariosviewmodel(newdictionary());
我的专有视图模型如下所示:

dgProprietarios.DataContext = new ProprietariosViewModel(new Dictionary<string, string>());
public CollectionProprietarios propCollection { get; set; }

public ProprietariosViewModel(Dictionary<string, string> Where)
{
    propCollection = new CollectionProprietarios(Where);
}
public CollectionProprietarios propCollection{get;set;}
公共专有视图模型(字典,其中)
{
propCollection=新集合Proprietarios(其中);
}
collectionpropertarietarios类继承了ObservableCollection,并具有以下代码:

    public CollectionProprietarios(Dictionary<string, string> Where)
    {
        Add(new Dados(Where));
    }

    public new void Add(Dados dados)
    {
        base.Add(dados);
    }
public DataTable ProprietariosRetorno { get; private set; }

public Dados(Dictionary<string, string> Where)
{

    var ado = new ADO();
    ProprietariosRetorno = ado.RetornaSelect(MontaQuery(Where));

}
public CollectionProprietarios(字典)
{
添加(新护墙板(如有));
}
公共新虚空添加(护墙板护墙板)
{
基础。添加(护墙板);
}
护墙板具有以下代码:

    public CollectionProprietarios(Dictionary<string, string> Where)
    {
        Add(new Dados(Where));
    }

    public new void Add(Dados dados)
    {
        base.Add(dados);
    }
public DataTable ProprietariosRetorno { get; private set; }

public Dados(Dictionary<string, string> Where)
{

    var ado = new ADO();
    ProprietariosRetorno = ado.RetornaSelect(MontaQuery(Where));

}
公共数据表proprietariosterno{get;private set;}
公共护墙板(字典)
{
var ado=new ado();
proprietariosretrono=ado.retronaselect(MontaQuery(Where));
}
函数MontaQuery只创建一个包含SELECT子句的字符串,然后retronaselect执行此查询

ADO,实例化时只创建数据库和表(如果不存在)

问题是,所有这些都在起作用。调试时,我可以检索DataContext中的值,它包含带有值的DataTable。但由于某些原因,当程序运行时,它不会出现在数据网格上

所以问题是,我做错了什么?

尝试使用

dgProprietarios.DataContext = new ProprietariosViewModel(new Dictionary<string, string>());
dgProprietarios.Items.Refresh();
dgProprietarios.DataContext=newproprietariosviewmodel(newdictionary());
dgProprietarios.Items.Refresh();
尝试使用

dgProprietarios.DataContext = new ProprietariosViewModel(new Dictionary<string, string>());
dgProprietarios.Items.Refresh();
dgProprietarios.DataContext=newproprietariosviewmodel(newdictionary());
dgProprietarios.Items.Refresh();

On
public DataTable proprietariosterno{get;private set;}
我已经尝试删除私有集并用set替换它。不走运(在
public DataTable proprietariosterno{get;private set;}
上,我已经尝试删除私有集并将其替换为set。运气不好:(由于您的代码,您的集合propCollection仅包含一个Dados类型的元素。此元素包含确切保存数据的DataTable PropRietariosRetrono。因此,您可以尝试在XAML中使用下一个代码:
ItemsSource=“{Binding Path=propCollection[0]。PropRietariosRetrono}”
。由于您的代码-您的集合propCollection只包含一个Dados类型的元素。此元素包含确切保存数据的DataTable proprietariosretrono。因此,您可以尝试在XAML中使用下一个代码:
ItemsSource=“{Binding Path=propCollection[0]。proprietariosretrono}”