私はDataGrid
、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>
Window_Loadedで、次のことを行います。
dgProprietarios.DataContext = new ProprietariosViewModel(new Dictionary<string, string>());
私のProprietariosViewModelは次のとおりです。
public CollectionProprietarios propCollection { get; set; }
public ProprietariosViewModel(Dictionary<string, string> Where)
{
propCollection = new CollectionProprietarios(Where);
}
CollectionProprietariosクラスはObservableCollectionを継承し、次のコードを持ちます。
public CollectionProprietarios(Dictionary<string, string> Where)
{
Add(new Dados(Where));
}
public new void Add(Dados dados)
{
base.Add(dados);
}
クラスDadosのコードは次のとおりです。
public DataTable ProprietariosRetorno { get; private set; }
public Dados(Dictionary<string, string> Where)
{
var ado = new ADO();
ProprietariosRetorno = ado.RetornaSelect(MontaQuery(Where));
}
関数MontaQueryは、SELECT句を含む文字列を作成するだけで、RetornaSelectはこのクエリを実行します。
クラスADOは、インスタンス化されると、データベースとテーブルが存在しない場合はそれを作成するだけです。
問題は、それがすべて機能していることです。デバッグ中に、DataContext内の値を取得でき、値を含むDataTableが含まれています。ただし、何らかの理由で、プログラムの実行時にDataGridに表示されません。
だから問題は、私が間違っているのは何ですか?