Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / WinForms, .Net Framework [игнор отключен] [закрыт для гостей] / Связать несколько компонентов и данные / 13 сообщений из 13, страница 1 из 1
26.05.2014, 15:06
    #38652151
Алексей Ку.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать несколько компонентов и данные
Добрый день, знатоки!
Подскажите пожалуйста как сделать следующее:
Есть определённая структура в БД. На грид выводится список записей. При выборе записи, справа на панели надо выводить список дополнительных параметров, которые можно менять.

Грид заполняется запросов linq. Вопрос: как, например, к textbox привязать какое-то дополнительное поле по этой записи? Соответственно при изменении textbox фиксировать изменения в базе.

В Borland C++ Builder с этим прекрасно справляются компоненты типа TDBEdit. Какой аналог в WinForms? Мне надо копать в сторону DataBindings? Ссылочки само собой приветствуются!

Спасибо!
...
Рейтинг: 0 / 0
27.05.2014, 18:10
    #38653758
Алексей Ку.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать несколько компонентов и данные
Переформулирую задачу:
Есть процедура p_Get. Возвращает колонку "Id". Эти данные отображаются на datagridview1.
При клике по datagridview1 надо из таблицы t_table выбрать поле "Name" где "Id" = "выбранный на гриде ID" отобразить его в textbox1. Ну само собой чтобы изменения в textbox1 сохранялись в базе.

Для работы с базой создаётся DataContext (Linq to Sql Classes) куда добавляются таблицы t_table и процедура p_Get.

Как работать с этими чортовыми databindings? Как связать два компонента, каждый из которых смотрит на разные источники данных, но один связан с другим?

Помогите пожалуйста! Уже который час ломаю голову над этим...
...
Рейтинг: 0 / 0
27.05.2014, 18:28
    #38653771
pation
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать несколько компонентов и данные
Алексей Ку.,

а что мсдн уже отключили?
...
Рейтинг: 0 / 0
27.05.2014, 18:31
    #38653772
Алексей Ку.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать несколько компонентов и данные
pation,

Само собой МСДН первое куда я полез. Но, к сожалению, МСДН не всегда настолько ясен и понятен (по крайней мер для меня), чтобы сразу реализовать задуманное! Я перепробовал уже кучу вариантов. Ну не получается у меня связать. Я прошу помочь конкретным примером!
...
Рейтинг: 0 / 0
27.05.2014, 18:41
    #38653777
pation
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать несколько компонентов и данные
Алексей Ку.pation,

Само собой МСДН первое куда я полез. Но, к сожалению, МСДН не всегда настолько ясен и понятен (по крайней мер для меня), чтобы сразу реализовать задуманное! Я перепробовал уже кучу вариантов. Ну не получается у меня связать. Я прошу помочь конкретным примером!

в мсдн есть конкретные примеры
...
Рейтинг: 0 / 0
27.05.2014, 18:50
    #38653785
Алексей Ку.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать несколько компонентов и данные
pationАлексей Ку.pation,

Само собой МСДН первое куда я полез. Но, к сожалению, МСДН не всегда настолько ясен и понятен (по крайней мер для меня), чтобы сразу реализовать задуманное! Я перепробовал уже кучу вариантов. Ну не получается у меня связать. Я прошу помочь конкретным примером!

в мсдн есть конкретные примеры

Не могли бы вы дать ссылку на конкретный пример?
...
Рейтинг: 0 / 0
27.05.2014, 19:01
    #38653793
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать несколько компонентов и данные
Алексей Ку.
для гугла - binding datagridview to textbox c#
очень много вариантов, есть кины разные
...
Рейтинг: 0 / 0
27.05.2014, 21:06
    #38653869
Алексей Ку.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать несколько компонентов и данные
Я не нашёл ни одного примера где данная задача реализуется при помощи DataContext!
...
Рейтинг: 0 / 0
27.05.2014, 21:38
    #38653885
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать несколько компонентов и данные
Алексей Ку.Я не нашёл ни одного примера где данная задача реализуется при помощи DataContext!
при чем тут datacontext, это вообще абстракция в нашей теме, которая имеет интерфейс : получение данных для грида, получение объекта по id, и сохранение измененного объекта где то, она может быть реализована хоть как: dcom, remoting, soap, голубиная почта, связь нарочным, фельдъегерская почта.
вообще:
авторГрид заполняется запросов linq
авторЕсть определённая структура в БД
авторЕсть процедура p_Get. Возвращает колонку "Id".
авторДля работы с базой создаётся DataContext (Linq to Sql Classes) куда добавляются таблицы t_table и процедура p_Get.
это к теме бандига не относится. курите снова - binding datagridview to textbox
или http://msdn.microsoft.com/ru-ru/library/system.windows.forms.control.databindings(v=vs.110).aspx
или делайте тупо на событиях
...
Рейтинг: 0 / 0
27.05.2014, 22:27
    #38653901
Кифирчик
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать несколько компонентов и данные
конкретный пример, на форме датагрид и два текст бокса.
list - считайте что это то что вы получили через linq.
для записи изменений в базу - берете bs.Current и в вашем контексте делаете апдейт.
Код: 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.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
    public partial class Form1 : Form
    {
        List<A> list = new List<A>();
        BindingSource bs = new BindingSource();
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Shown(object sender, EventArgs e)
        {
            list.Add(new A() { Id = 1, Name = "Name1" });
            list.Add(new A() { Id = 2, Name = "Name2" });
            list.Add(new A() { Id = 3, Name = "Name3" });
            list.Add(new A() { Id = 4, Name = "Name4" });

            bs.DataSource = list;

            dataGridView1.DataSource = bs;

            textBox1.DataBindings.Add("Text", bs, "Name");

            bs.CurrentItemChanged += bs_CurrentItemChanged;
        }

        void bs_CurrentItemChanged(object sender, EventArgs e)
        {
            A item = bs.Current as A;
            textBox2.Text = item.ToString();
        }
    }

    public class A : INotifyPropertyChanged
    {
        private int id;
        private string name;

        public int Id
        {
            get
            {
                return id;
            }
            set
            {
                id = value;
                PropertyChangedFun("Id");
            }
        }

        public string Name
        {
            get
            {
                return name;
            }
            set
            {
                name = value;
                PropertyChangedFun("Name");
            }
        }


        public event PropertyChangedEventHandler PropertyChanged;
        void PropertyChangedFun(string propName)
        {
            if (PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(propName));
        }

        public override string ToString()
        {
            return string.Format("{0}:{1}",id, name);
        }
    }
...
Рейтинг: 0 / 0
27.05.2014, 23:46
    #38653930
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать несколько компонентов и данные
Кифирчик,
Вы бы выкинули этот хлам отдельно в тип
а тип отнаследовали бы от интерфейса
типа
Код: c#
1.
2.
3.
4.
5.
6.
internal interface IData
    {
        IEnumerable<Itemкакбыдля Грида> GetObjectsForGrid();
        object GetObjectId(int id);
        void SaveOrUpdate(Object ob);
    }


у него мозк взрывает не по детский, мы еще ему тут бисера сыпанули..?
и у него похоже разные типы используются для грида, и для лесоохранения в базе ( таблицы)
...
Рейтинг: 0 / 0
27.05.2014, 23:47
    #38653931
Где-то в степи
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать несколько компонентов и данные
хлам
авторList<A> list = new List<A>();

list.Add(new A() { Id = 1, Name = "Name1" });
list.Add(new A() { Id = 2, Name = "Name2" });
list.Add(new A() { Id = 3, Name = "Name3" });
list.Add(new A() { Id = 4, Name = "Name4" });
...
Рейтинг: 0 / 0
28.05.2014, 10:32
    #38654167
pation
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Связать несколько компонентов и данные
Алексей Ку.pationпропущено...


в мсдн есть конкретные примеры

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


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