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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> datagrid binding mobile 
:(
    Опции темы
Sharki
Дата 21.4.2009, 09:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Здрасте всем.
Прошу помощи в след.вопросе.Сразу отмечу что пишу под mobile 6.
Задача стоит следующая.
Есть главная форма,на ней datagrid(табле построин с maping).Например человек нажал на какой то строке,открывается новое окно(как на image),как мне сделать binding к каждому textbox,или lable,или к combobox(притом что комбобокс или текст бокс могут быть из разных таблиц в базе).

Зарание,Спасибо огромное.

Присоединённый файл ( Кол-во скачиваний: 10 )
Присоединённый файл  untitled.JPG 35,51 Kb
PM MAIL   Вверх
Sharki
Дата 21.4.2009, 17:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Please podskazhite ochen nado,nu chto nikto ne delal ???
Spasibo.
PM MAIL   Вверх
Sharki
Дата 21.4.2009, 20:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Please .......  smile 
PM MAIL   Вверх
Skynin
Дата 21.4.2009, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 1.7.2007
Где: Харьков

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



Решил ответить, раз уж -  smile 
Я пишу под мобайл, рабочее место официанта под специфическую базу (не sql) с обменом по WiFi (а также пока отложена бета места врача скорой помощи, обмен с той же базой, по GPRS)
Разумеется использую и гриды, и окна (как на весь экран, так и "плавающие"). binding - как когда, из-за рефлексии он тормозной. Да и бывает невыгоден, когда нужно либо все поля изменить-сохранить, либо ни одного.

Но что у Вас за проблемы, не понял ни глядя на картинку во второй раз, ни вчитываясь в постинг.
PM MAIL WWW ICQ Skype GTalk YIM MSN   Вверх
Sharki
Дата 21.4.2009, 23:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Skynin выручай.Вот не получается сделать  биндинг.Вот смотри есть главное окно,на нём datagrid.Например человек нажал на какой то строчке,надо открыть другое окно и показать информацию но уже в textbox-ах или lable-ах.
Я так понял что надо делать через CurrencyManager,но что то ни как не могу понять,нужна помощь.
вот например вот так создаю datatable,авот что дальше как по нажатию на row,открыть новую форму и тд.
 
Код

InitializeComponent();

            string databasePath = Path.GetDirectoryName(
                     Assembly.GetExecutingAssembly().GetName().CodeBase);

            SqlCeConnection connString = new SqlCeConnection("Data Source=" + databasePath +
                "\\Test.sdf");
            command = new SqlCeCommand();
            command.Connection = connString;
            adapter = new SqlCeDataAdapter(command);


            dataTable = new DataTable();
            //Initialize Dataset.
            dataSet = new DataSet();
            dataTable = dataSet.Tables.Add("ALL");
            
            adapter = new SqlCeDataAdapter("Select top (10) WorkOrders.Name,WorkOrders.Description,WorkOrders.WorkCategoryID,WorkOrders.WorkOrderID,WorkOrders.WorkOrderType,WorkOrders.IsEquipmentWO,WorkOrders.IsDemandWO,WorkOrders.IsOnHold,WorkOrders.IsWaitingToBeCosted,WorkOrders.IsWaitingForInvoice,WorkOrders.DueDate from WorkOrders inner join WorkCategories on(WorkOrders.WorkCategoryID = WorkCategories.WorkCategoryID)", connString);

            
          
            /*dataTable = new System.Data.DataTable("DWO");
                       dataTable.Columns.Add("Select", typeof(bool));
            dataTable.Columns.Add("Status", typeof(Image));
            dataTable.Columns.Add("Type", typeof(string));
            dataTable.Columns.Add("Name", typeof(string));
            dataTable.Columns.Add("Description", typeof(string));

            DataGridTableStyle ts = new DataGridTableStyle();
            ts.MappingName = "DWO";

            DataGridTextBoxColumn textCol = new DataGridTextBoxColumn();
            DataGridTextBoxColumn textCol1 = new DataGridTextBoxColumn();
            DataGridTextBoxColumn textCol2 = new DataGridTextBoxColumn();
            DataGridTextBoxColumn textCol3 = new DataGridTextBoxColumn();
            DataGridTextBoxColumn textCol4 = new DataGridTextBoxColumn();

            textCol.MappingName = "Select";
            textCol.HeaderText = "Select";
            textCol1.MappingName = "Status";
            textCol1.HeaderText = "Status";
            textCol2.MappingName = "Type";
            textCol2.HeaderText = "Type";
            textCol3.MappingName = "Name";
            textCol3.HeaderText = "Name";
            textCol4.MappingName = "Description";
            textCol4.HeaderText = "Description";

            ts.GridColumnStyles.Add(textCol);           
            ts.GridColumnStyles.Add(textCol1);          
            ts.GridColumnStyles.Add(textCol2);       
            ts.GridColumnStyles.Add(textCol3);
            ts.GridColumnStyles.Add(textCol4);
            ts.GridColumnStyles[4].Width = 300;


            dataGrid_All.TableStyles.Add(ts);*/

            adapter.Fill(dataTable);


            dataTable.PrimaryKey = new DataColumn[] { dataTable.Columns["WorkOrderID"] };

            dataGrid_All.DataSource = dataTable;

Например на открывающейся форме есть закладки кот. все относятся к одному.Как прибандить инфу.к закладкам,как потом сохронять,и тд.
Подскажи если не трудно.Зарание спасибо.

Добавлено @ 23:08
ой извените я там по ошибке сразу два варианта кинул,просто пробую и так и так.
Извеняюсь.

Это сообщение отредактировал(а) Sharki - 21.4.2009, 23:09
PM MAIL   Вверх
Skynin
Дата 21.4.2009, 23:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 1.7.2007
Где: Харьков

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



1. Вешаешь обработчик на нужное событие грида. Например на дабл клик
2. В нем определяешь текущую строку
3. Создаешь нужную форму, передаешь в нее текущий row
4. В ней толи биндишь, толи вручную иницилизируешь объекты интерфейса.
4а. Можно воспользоваться BeginEdit , ..., ..., ...
5. Открываем. Обрабатываешь, если нужно действия пользователя по редактированию.
6. Закрываем форму - если вручную были проинициализированы объекты интерфейса - копируем в row

И все. Вин Мобайл тут ни при чем - везде в Windows Forms так. Разве что методов хитрых или удобных в CF .NET нет

Подробности о биндинге тут:
Привязка данных в Windows Forms
и в MSDN


Это сообщение отредактировал(а) Skynin - 21.4.2009, 23:19
PM MAIL WWW ICQ Skype GTalk YIM MSN   Вверх
Sharki
Дата 21.4.2009, 23:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Огромное спасибо что ответил,а не кинеш какой нибудь пример,а то ето все неживое,хочется посмотреть на нармальный код.
А то всё что ты написал вроде понятно,но как делать ???.
Спасибо большое.
PM MAIL   Вверх
Sharki
Дата 22.4.2009, 07:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Skynin подскажи плиззз,вот так зделал:

this.BindingContext[dataSet, "ALL"].Position = dataGrid_All.CurrentRowIndex;
            //MessageBox.Show(dataGrid_All.CurrentRowIndex.ToString());
            DemandWO demand = new DemandWO();
            demand.ShowDialog();
текущая строка есть,форму открыл,а дальше как ?
передаешь в нее текущий row - ???
4. В ней толи биндишь, толи вручную иницилизируешь объекты интерфейса.-???
4а. Можно воспользоваться BeginEdit , ..., ..., ...-???
5. Открываем. Обрабатываешь, если нужно действия пользователя по редактированию.-???
6. Закрываем форму - если вручную были проинициализированы объекты интерфейса - копируем в row-???

Пожалуста очень надо.Зарание спасибо огромное.

PM MAIL   Вверх
Sharki
Дата 22.4.2009, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Skynin please HELP smile  smile  smile 
PM MAIL   Вверх
Skynin
Дата 22.4.2009, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 359
Регистрация: 1.7.2007
Где: Харьков

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



Э-э-э.... 

Вы пишите вслепую, напрочь не понимая что.

this.blabla = dataGrid_All.... - это изменение чего-либо в одной форме.
DemandWO demand = new DemandWO(); - это создание другой формы.
а -  demand.ShowDialog(); - вызов этой другой формы, причем так что они ничего и никак не знает о той, в которой грид, в которой что-то мутили с .BindingContext, и из которой она вызвана

прочтите наконец хоть какую-то книжку.
Или хотя бы пройдитесь по форуму и поищите ответы на избитый вопрос: Как передать данные из одной формы в другую.

Еще раз - Ваши проблемы никак не связаны с Мобайл платформой, а только с полным, тотальным непониманием как работают и взаимодействуют объекты в Windows Forms.
Исправляется только самостоятельным и углубленным чтением учебной литературы.
PM MAIL WWW ICQ Skype GTalk YIM MSN   Вверх
Sharki
Дата 22.4.2009, 09:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Skynin здрасте.Я знаю что у меня проблеммы с пониманием.Но сейчас очень нужно,плизззз помоги,покажи как надо.
На тебя надежда,специально тебя ждал.Плиззз.Спасибо.
PM MAIL   Вверх
Sharki
Дата 23.4.2009, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Здрасте всем.Вобщем спасибо товарищу Skynin ,с bindingom вроде разобрался.
Создал проект,добавил db.sdf,добавились dataset,TableAdapter и BindingSorce.Всё на основной форме показываю datagrid,выбераю строку нажимаю на кнопочку открываю новую форму:
DemandWO demand = new DemandWO(workOrdersBindingSource);

всё вроде нормально,на открывшейся форме добовляю :
lbl_Name.DataBindings.Add("Text", CurrentBindingSource, "Name".ToString()); и дальше все поля.
Но вот в чем вопрос.На етой открывшейся форме есть закладки,на каждой из которых есть какое то поле,которое тоже бандится,неполучается сделать,например первая закладка основная,например я перешол на вторую закладку изменил что то и как мне теперь ето сохронить в db.Потому что если я зделаю просто:

this.DialogResult = DialogResult.OK;
            this.Close();
то я увижу изменения в datagrid,а как записать в базу.
Спасибо.
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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