第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

WPF DataGrid 中的數(shù)據(jù)綁定未顯示在窗體上

WPF DataGrid 中的數(shù)據(jù)綁定未顯示在窗體上

C#
慕容森 2022-12-24 10:43:32
數(shù)據(jù)庫(kù)中的數(shù)據(jù)顯示在表單上。怎么了?我制作存儲(chǔ)庫(kù)、表格和一些方法。我使用 SQLite 并希望以簡(jiǎn)單查詢的形式顯示結(jié)果,例如 SELECT id,Name FROM Students 我將按鈕放在帶有代碼的表單上private void Button_Click(object sender, RoutedEventArgs e)        {            var repo = new StudentsRepository();            var res = repo.GetAll();            DataTable dt = new DataTable("students");            DataGrid1.ItemsSource = dt.DefaultView;        }表單有 DataGrid 和 2 列,但我不明白為什么表單不顯示結(jié)果<Grid>        <DataGrid x:Name="DataGrid1" AutoGenerateColumns="true"  HorizontalAlignment="Left" Height="352" Margin="10,10,0,0" VerticalAlignment="Top" Width="758" SelectionChanged="DataGrid_SelectionChanged">        <DataGrid.Columns>            <DataGridTextColumn Binding="{Binding id}" Width="100" Header="Id"/>            <DataGridTextColumn Binding="{Binding Name}" Width="100" Header="Name"/>        </DataGrid.Columns>        </DataGrid>        <Button x:Name="ShowDataButton" Content="Show_Data" HorizontalAlignment="Left" Height="31" Margin="64,367,0,0" VerticalAlignment="Top" Width="161" Click="Button_Click"/>    </Grid>public class StudentsRepository: IRepository<StudentEntity>    {        private string GET_ALL_QUERY = "SELECT id, Name FROM Students";        private SqliteContext DbContext { get; }        public StudentsRepository()        {            DbContext = new SqliteContext();        }        public async Task<IList<StudentEntity>> GetAll()        {            var dataTable = new DataTable("Students");            using (var conn = await DbContext.GetConnection())            {                var da = new SQLiteDataAdapter(GET_ALL_QUERY, conn);                da.Fill(dataTable);                conn.Close();            }            var studList = new List<StudentEntity>();            foreach (DataRow row in dataTable.Rows)            {                studList.Add(new StudentEntity(row));            }            return studList;        }    }
查看完整描述

2 回答

?
白衣染霜花

TA貢獻(xiàn)1796條經(jīng)驗(yàn) 獲得超10個(gè)贊

這個(gè)怎么樣:


public async Task<DataTable> GetDataTable()

{

    var dataTable = new DataTable("Students");

    using (var conn = await DbContext.GetConnection())

    {

        var da = new SQLiteDataAdapter(GET_ALL_QUERY, conn);

        da.Fill(dataTable);

        conn.Close();

    }

    return dataTable;

}


private void Button_Click(object sender, RoutedEventArgs e)

{

    var repo = new StudentsRepository();

    var res = repo.GetDataTable();

    DataGrid1.ItemsSource = res.Result.AsDataView();

}

希望這有幫助~


更新:抱歉,函數(shù)返回類型是任務(wù),因此它不是實(shí)際數(shù)據(jù),這樣做:res.Result.AsDataView();


查看完整回答
反對(duì) 回復(fù) 2022-12-24
?
呼喚遠(yuǎn)方

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個(gè)贊

在您的 DataGrid 集上:

    AutoGenerateColumns="False"

然后改變:

DataGrid1.ItemsSource = dt.DefaultView

到:

DataGrid1.DataContext = dt.DefaultView

在 WPF 中,將綁定與您定義的列一起使用需要您設(shè)置 DataContext 而不是 ItemSource。就我個(gè)人而言,在從數(shù)據(jù)庫(kù)中提取數(shù)據(jù)并在 DataGrid 中顯示數(shù)據(jù)時(shí),我一直使用 .ToList(),因此我無(wú)法就 DataTable 對(duì)您的其余代碼發(fā)表評(píng)論。


查看完整回答
反對(duì) 回復(fù) 2022-12-24
  • 2 回答
  • 0 關(guān)注
  • 504 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)