Модераторы: gambit, Partizan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Binding ComboBox в DataGridView 
:(
    Опции темы
godor2008
  Дата 30.8.2011, 00:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 1
Регистрация: 29.8.2011

Репутация: нет
Всего: нет



Всем привет! Кто знает как можно решить такую задачку:
Есть класс Report

Код

public class Report
    {
        public virtual int Id { get; private set; }
        public virtual Employee Employee { get; set; }
        public virtual IList<Expense> Expenses { get; set; }
        public virtual IList<MoneyTransfer> Transfers { get;  set; }
        public virtual string Comment { get; set; }
 
        public  Report()
        {
            Expenses = new List<Expense>();
            Transfers = new List<MoneyTransfer>();
        }
    }


Данный класс содержит 2 коллекции Expenses и Transfers. Transfers состоит из классов MoneyTransfer:
Код

public class MoneyTransfer
    {
        public virtual int Id { get; private set; }
        public virtual Report Report { get; set; }
        public virtual Currency ReceivedCurrency { get; set; }
        public virtual string Comment { get; set; }
    }


В свою очередь,MoneyTransfer имеет свойство класса Currency:
Код

public class Currency
    {
        public virtual  int Id { get; private set; }
        public virtual string Name { get; set; }
    }


Также, отдельно есть список нескольких валют:
Код

IList<Currency> CurrencyList

Заполняется он из БД.

Есть dataGridView. Хочу в нем отобразить коллекцию Transfers. Но чтобы в таблице в колонке "Валюта" был comboBox со всеми возможными валютами из CurrencyList. И в нем выбиралась указанная валюта из MoneyTransfer.

Тоесть:
Код

                 DataGridViewComboBoxColumn Column3 = new DataGridViewComboBoxColumn();
                Column3.HeaderText = "Валюта";
                Column3.DataPropertyName = "ReceivedCurrency";
                Column3.DisplayMember = "Name";
                Column3.ValueMember = "Currency";

                 //Заполняем валютами выпадающий список
                 foreach (Currency cur in CurrencyList)
                {
                    Column3.Items.Add(cur);
                }

                dataGridView1.DataSource = report.Transfers;
                dataGridView1.Columns.Add(Column3);


В итоге, стоит только выбрать любую валюту из выпадающего списка как появляется dataGridView.DateError
В comboBox изначально ничего выбрано, хотя должно.


Если создать отдельный comboBox от dataGridView
Код

                    comboBox3.DataBindings.Clear();
                    comboBox3.DataBindings.Add("SelectedItem",report.Transfers,"ReceivedCurrency");
                    comboBox3.DisplayMember = "Name"; //то что будет отображаться
                    comboBox3.ValueMember = "Currency"; //то с чем будет ассоциироватьс
                    comboBox3.DataSource = CurrencyList;

То работает почти как задумано.


Это сообщение отредактировал(а) godor2008 - 30.8.2011, 00:38
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка Windows Forms | Следующая тема »


 




[ Время генерации скрипта: 0.0955 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.