0

データをデータグリッドに動的にバインドしていますが、データが表示されません。その中に、RowError、RowState、table、ItemArray、HasError の 5 つの列があります。

しかし、行数は正しいので、データベースと同じ行数になります。

これはVbコードです:

Dim con As New OdbcConnection("dsn=PAUSPAN")
con.Open()
Dim cmd As New OdbcCommand("select * from tbl_chart", con)

Dim da As New OdbcDataAdapter(cmd)
'Dim dt As New DataTable("a")
Dim ds As New DataSet()
ds.Tables.Add("a")

da.Fill(ds, "a")
MsgBox(ds.Tables("a").Rows.Count.ToString)

DataGrid1.ItemsSource = ds.Tables("a").AsEnumerable.ToList()
'DataGrid1.DataContext = ds.DefaultViewManager

con.Close()

これは XAML コードです。

<Window x:Class="datagrid"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"        
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="datagrid" Height="344" Width="599">
    <Grid>
        <Button Content="Button" Height="23" HorizontalAlignment="Left" Margin="486,225,0,0" Name="Button1" 
                VerticalAlignment="Top" Width="75" />
        <DataGrid Height="241" HorizontalAlignment="Left"
                  Margin="12,12,0,0" 
                  Name="DataGrid1" VerticalAlignment="Top"
                  Width="386" ItemsSource="{Binding ds}" />
    </Grid>
</Window>

この問題を解決するには?データセットをデータグリッドに動的にバインドするにはどうすればよいですか?

4

2 に答える 2

2

の代わりに でバインドItemsSourceします。以下のいずれかの方法で DataView を取得できます。DataViewDataTable

DataGrid1.ItemsSource = ds.Tables("a").DefaultView;

または拡張メソッドを使用AsDataView-

DataGrid1.ItemsSource = ds.Tables("a").AsDataView();
于 2013-11-03T08:51:17.197 に答える