none
Литература по теме биндинга Datagridview и List<T> RRS feed

  • Вопрос

  • Подскажите литературу с примерами и паттернами работы  биндинга Datagridview и List<T>. Например:

       private void button1_Click(object sender, EventArgs e)
            {
                List<Data> data = new List<Data>();
                data.Add(new Data() { Name = "Aaaaaa", Age = 20 });
                dataGridView1.DataSource = data;
            }
        }
        public class Data
        {
            [DisplayName("Имя")]
            public string Name { get; set; }
            [DisplayName("Возраст")]
            public int Age { get; set; }
        }
    Как это правильно делать, когда просто привязывать List<>, когда использовать BindingList<>. Как исключить ошибки с CurrencyManager типа этой ошибки. Интересует в основном классический .Net 2.0 ну остальные в принципе тоже, но в меньшей степени. Заранее благодарен за помощь.


    1 октября 2012 г. 6:21

Ответы

  • Если у вас источник данных поддерживается Ado .Net, то вы можете воспользоваться LINQ to ADO.NET.

    • Помечено в качестве ответа Abolmasov Dmitry 12 октября 2012 г. 13:09
    2 октября 2012 г. 11:04
    Отвечающий
  • Я в свое время читал вот эту.

    В ней очень хорошо рассмотрены расширяющие методы, лямбда выражения, приведено описание с примерами методов доступных в System.Linq. Примеры затянуты, а так книжка хорошая.

    • Помечено в качестве ответа Abolmasov Dmitry 12 октября 2012 г. 13:09
    2 октября 2012 г. 17:09
    Отвечающий

Все ответы

  • Добрый день.
    Я бы посоветовал начать с изучения MSDN.
    Например, вот с этого. Ну а дальше, все разнообразие тем по отображению данных с помощью элемента управления DataGridView  можно почитать здесь.

    Ну а когда появится конкретная проблема, прийти на этот форум и ее описать, и вам постараются помочь.

    2 октября 2012 г. 5:32
    Отвечающий
  • Разница между обычным списком List и BindingList заключается в механизме привязки. При обычном List привязка односторонняя: данные списка отображаются в таблице, при изменении данных в таблице изменяются соответвующие данные списка. При изменении списка, данные в таблице не изменятся (т.е. добавление в List нового элемента не отобразится автоматически).

    В BindingList двусторонняя привязка и изменения данных сразу отображаются.


    Для связи [mail]

    2 октября 2012 г. 8:20
  • Вот в какой книжке это все прочитать можно :) и интересно основы так сказать я знаю. Многие ведь советуют вместо DataSource использовать классы и структуры в List<T>.
    2 октября 2012 г. 10:28
  • Вот в какой книжке это все прочитать можно :) и интересно основы так сказать я знаю. Многие ведь советуют вместо DataSource использовать классы и структуры в List<T>.

    Видите, ли, тут какое дело. То про что вы спрашиваете, немного морально устарело, примерно в 2007-08 году. Ведь именно в это время появилась технология, которая получила название WPF. Вот так биндинг так биндинг. Если у вас есть возможность выбирать технологию разработки, то я бы рекомендовал WPF во всем приложении. Если вам нужен только один компонент-таблица, которая осуществляет показ списка (с красивостями, редактированием на лету и т.д.), то сделать это в виде WPF компонента и интегрировать его в ваше WinForms приложение. Я это к тому, что если вы все равно планируете разбираться, то лучше разбираться с актуальной технологией...

    Вот, если хотите, для затравки, как может выглядеть стандартный компонент DataGrid в WPF:

    Но он может быть и вот таким:

    2 октября 2012 г. 10:37
    Отвечающий
  • Меня интересуют принципы хранения данных в приложении, а не отображения. Мне интересно как хранить данные вместо DataSet. В WPF тоже DataSet используется.
    2 октября 2012 г. 10:49
  • Нет, в WPF можно использовать много различных способов, часто бывает удобно ObservableCollection<ваш_тип>, но если вы работаете с базой данных, то с высокой вероятностью это будут DbSet<ваш_тип>... В общем, DataSet морально устарели тоже достаточно давно, где то сразу по выходу WPF и, самое главное, Linq.
    2 октября 2012 г. 10:53
    Отвечающий
  • Далеко не все БД имеют интерфейс и драйвера для работы Link. Вот собственно про это и хочу почитать что пришло на смену DataSet
    2 октября 2012 г. 10:59
  • Если у вас источник данных поддерживается Ado .Net, то вы можете воспользоваться LINQ to ADO.NET.

    • Помечено в качестве ответа Abolmasov Dmitry 12 октября 2012 г. 13:09
    2 октября 2012 г. 11:04
    Отвечающий
  • Я могу загрузить данные из базы в DataSet или List<>  или куда нить наподобие, нетипизораванный DataSet  и т.п. Есть ли книги по ADO.Net на подобие  Дэвида Сеппа
    2 октября 2012 г. 11:14
  • Я в свое время читал вот эту.

    В ней очень хорошо рассмотрены расширяющие методы, лямбда выражения, приведено описание с примерами методов доступных в System.Linq. Примеры затянуты, а так книжка хорошая.

    • Помечено в качестве ответа Abolmasov Dmitry 12 октября 2012 г. 13:09
    2 октября 2012 г. 17:09
    Отвечающий