3

新しいフォームの詳細として DataSource から配置ObsevableCollection Userすると、すべての textBoxes、BindingSource、および BindingNavigator が作成されます。これは優れた高速です。

更新する必要があるユーザーは 1 人だけなので、BindingNavigator を削除しました。しかし...

これはリストの変換なしでできますか?

class UserDt : Forms {
    // Designer partial part
    this.userBindingSource.DataSource = typeof(WinFormswithEFSample.User);

    private void UserDt_Load
    {
        _context.Users.Load();

        // use this with BindNavigator to navigate ower all users
        //this.userBindingSource.DataSource = _context.Users.Local.ToBindingList();

        // this doesn't work
        //this.userBindingSource.DataSource = _context.Users.Where(p => p.Username == "admin").Local.ToBindingList();

        var query = _context.Users.Where(p => p.Username == "admin").ToList();
        var binding = new BindingList<User>(query);
        this.usersBindingSource.DataSource = binding;
    }
}
4

1 に答える 1

5

これはリストの変換なしでできますか?

いいえ
。は引数として をBindingList受け取ります。にキャストできないため、既に行ったように変換する必要があります。IList
IQueryableIList

    var query = _context.Users.Where(p => p.Username == "admin")
                              .ToList(); //converts the IQueryable to List
    var binding = new BindingList<User>(query);

あなたが本当に必要BindingList、よりシンプルなもので解決できない場合List

于 2013-11-01T13:16:00.203 に答える