Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / DataGridView и ComboBox - как получить текст ячейки, а не значение ? / 3 сообщений из 3, страница 1 из 1
19.07.2013, 16:53
    #38337279
DataGridView и ComboBox - как получить текст ячейки, а не значение ?
ColumnType - DataGridViewComboBoxColumn

Комбик заполнен таблицей из двух столбцов (один -
Код: vbnet
1.
DisplayMember

, другой -
Код: vbnet
1.
ValueMember

)

Как мне программно получить не значение ValueMember, которое в
Код: vbnet
1.
DatagridViewCell.Value

,
а значение
Код: vbnet
1.
DisplayMember

, которое отображается на экране ?

Вобще-то я хочу отсортировать DataGridVew не по значениям ID в ValueMember'e, а по тексту, который виден на экране
...
Рейтинг: 0 / 0
19.07.2013, 22:23
    #38337592
La France
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
DataGridView и ComboBox - как получить текст ячейки, а не значение ?
Не совсем понял вопрос, но вроде так:
Код
Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            List<MyStruct> list1 = new List<MyStruct>();
            MyStruct myStruct1;
            
            for (int i = 0; i < 10; i++)
            {
                myStruct1 = new MyStruct();
                myStruct1.DysplayMember = "Text " + i.ToString();
                myStruct1.ValueMember = "Value " + i.ToString();
                list1.Add(myStruct1);
            }

            dataGridView1.DataSource = list1;

            comboBox1.DataSource = dataGridView1.DataSource;
            comboBox1.ValueMember = "ValueMember";
            comboBox1.DisplayMember = "DisplayMember";
        }
        /// <summary>
        /// Отображаем текст
        /// </summary>
        private void button1_Click(object sender, EventArgs e)
        {
            MessageBox.Show((comboBox1.SelectedItem as MyStruct).DysplayMember);
        }
        /// <summary>
        /// Отображаем значение
        /// </summary>
        private void button2_Click(object sender, EventArgs e)
        {
            //так
            MessageBox.Show((comboBox1.SelectedItem as MyStruct).ValueMember);
            //или так
            MessageBox.Show(comboBox1.SelectedValue.ToString());
        }
    }

    public class MyStruct
    {
        public string DysplayMember
        {
            get;
            set;
        }

        public string ValueMember
        {
            get;
            set;
        }
    }


...
Рейтинг: 0 / 0
20.07.2013, 08:37
    #38337738
DataGridView и ComboBox - как получить текст ячейки, а не значение ?
Ой-Ой !
Ничего не понял, т.к. могу читать только то, что написано на Basic'e

Перескажу вопрос поподробнее (заранее извиняюсь за непрофессиональный язык):

Один из столбов (CustomerID) таблицы tblOrders, которая отображается в DataGridView связан отношением "многие к одному" с первичным ключом другой таблицы - tblCustomers.

Я хочу, чтобы на форме DataGridView вместо ID отображалось CustomerName
- проставляю ColumnType=DataGridViewComboBoxColumn.

Так и получается, в ячейке содержится CustomerID, отображается CustomerName,
но при этом и сортировка происходит по CustomerID - ValueMember,
а я хочу, чтобы сортировало не по значению (ID), а по отображаемому тексту.
Для этого я делаю
Код: vbnet
1.
2.
    Private Class RowComparer
        Implements System.Collections.IComparer


в нём
Код: vbnet
1.
2.
        Public Function Compare(ByVal x As Object, ByVal y As Object) As Integer _
           Implements System.Collections.IComparer.Compare


которая сравнивает два DataGridViewRow

Только мне нужно сравнить не по значению ячейки DataGridViewCell.Value, а по отображемому в ней тексту. Вот только как бы его вытащить ?
...
Рейтинг: 0 / 0
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / DataGridView и ComboBox - как получить текст ячейки, а не значение ? / 3 сообщений из 3, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]