![]() |
|
Модераторы: gambit, Kefir, Partizan |
![]()
|
|
| Человек01 |
|
||||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 20.2.2009 Где: Абакан, респ. Хак асия, Россия Репутация: 2 Всего: 2 |
Диспозиция:
DataGrid с данными из базы, добавляется две колонки одна колонка забивается данными MyClass
Соответственно отображается все красиво и правильно, но в самой таблице в колонке newcollumn данных нет пусто. Вопрос: Как сделать так чтобы данные в самой колонке (ds.Tables[0].Rows[i].GetField(dtt.Columns["newcollumn"]) были идентичными отображаемым в данной колонке. |
||||||
|
|||||||
| Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 9 Всего: 67 |
Человек01, а может стоит попробовать выставить у Binding Mode=TwoWay
-------------------- СУВ, Partizan. |
|||
|
||||
| Человек01 |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 20.2.2009 Где: Абакан, респ. Хак асия, Россия Репутация: 2 Всего: 2 |
Немного не понял, ведь если я выставлю Mode=TwoWay то это будет просто говорить колонке(Myclasscolumn) содержащей элементы MyClass что требуется обновлять значения в соответствии с биндингом {Binding Path=Myclasscolumn.Level}, а у меня то проблема в том что колонка newcollumn отображать то отображает данные (в соответствии с этим Binding ом), но в самой таблице этих данных не появляется:
выдает:
то есть непосредственно в таблице данных нет, вот мне и интересно как заставить их появляться там. Если утрировать задачу то получается, есть две переменных int i1; int i2; как сделать так чтобы при изменении любой из переменных, вторая меняла своё значение. |
||||
|
|||||
| Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 9 Всего: 67 |
Человек01, я тоже немного не понял....есть датагрид...в нём есть колонка, которая посредством биндинга отображает данные из табличной колонки newcolumn...что мешает в этом биндинге прописать Mode=TwoWay...в таком случае при изменении значения в UI, изменения будут происходить и в источнике данных..
-------------------- СУВ, Partizan. |
|||
|
||||
| Человек01 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 20.2.2009 Где: Абакан, респ. Хак асия, Россия Репутация: 2 Всего: 2 |
Это видимо я не правильно сформулировал вопрос.
Правильнее спросить как связать две колонки в DataTable 1.заполнил DataTable данными из базы. 2.Добавил ещё колонку к DataTable. 3.Как сделать так чтобы эта новая колонка дублировала данные из первой колонки. 4.И при изменении данных в какой либо из этих колонок они автоматом менялись в другой. Я сделал так после заполнения DataTable из базы, добавляю колонку и прохожусь по всем элементам и инициирую данные новой колонки(другими словами заполняю их). Вешаюсь на событие изменения данных в строке(dtt.RowChanged += new DataRowChangeEventHandler(dtt_RowChanged)), если они изменились то провожу исследование изменений и соответственно меняю значения в том или ином столбце. Но я хотел бы узнать есть ли какой нибудь другой способ, так сказать более изящный. |
|||
|
||||
| Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 9 Всего: 67 |
Человек01, какой смысл иметь две колонки с абсолютно одинаковыми данными? К чему эта избыточность?
-------------------- СУВ, Partizan. |
|||
|
||||
| Человек01 |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 20.2.2009 Где: Абакан, респ. Хак асия, Россия Репутация: 2 Всего: 2 |
Ну это же утрированная задача.
В первом посте я же написал. В посте MyClass тоже утрирован, само собой. MyClass помимо вычислительных и обеспечительных мер занимается ещё и предоставлением данных для сортировки, а именно необходимой позиции строки в DataGrid, соответственно данные не являются избыточными. А может просто у меня не хватает знаний как реализовать сортировку в столбце, без нахождения там данных. |
|||
|
||||
| Partizan |
|
|||
![]() Let's do some .NET ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 2828 Регистрация: 19.12.2005 Где: Санкт-Петербург Репутация: 9 Всего: 67 |
Человек01, кажется я таки понял...по сути вам нужен байндинг одновременно к двум свойствам...
как вариант - можно чуть извратиться и написать собственный MarkupExtension + ещё немножко кода ;) Можно ли получить такой функционал "искаропки" мне, к сожалению, не известно... -------------------- СУВ, Partizan. |
|||
|
||||
| Человек01 |
|
||||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 87 Регистрация: 20.2.2009 Где: Абакан, респ. Хак асия, Россия Репутация: 2 Всего: 2 |
Теперь хватило знаний чтобы сделать сортировку в колонке содержащей MyClass и как следствие отпала необходимость в создании дополнительной колонки в DataTable и всяческом связывании колонок, как правильно сказал Partizan эта избыточность не нужна.
Щас скажу как сделал, может кто тоже столкнулся с таким вопросом (хотя если я столкнулся с ним, явно хоть один человек им тоже задавался Во первых: в выставляем для нашей колонки
Во вторых в MyClass реализуем интерфейс IComparable
И всё, теперь можно нормально сортировать колонку содержащую экземпляры MyClass. Оказалось очень просто и не надо было усложнять себе жизнь. P.S.:Тему не помечаю как решенную, т.к. может и правда существует способ связать данные двух колонок DataTable. Это сообщение отредактировал(а) Человек01 - 23.2.2009, 21:57 |
||||
|
|||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | WPF и Silverlight | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |