![]() |
|
Модераторы: gambit, Kefir, Partizan |
![]()
|
|
| DmitriyS |
|
||||||||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 9.7.2011 Репутация: нет Всего: нет |
Имем: некоторое окно с DataGrid или ListView (не особо важно). При двойном щелчке на одной из строк, вызывается редактор содержимого этой строки, т.е. открывается диалог для правки данных(на это есть причины). При этом, в основном окне, имеем ObjectDataProvider src из которого поступают данные в DataGrid(ListView).
Требуется: Передать src в конструктор редактора содержимого, ибо src настроен определенным образом и делать его клоны или копии - не желательно. Таким образом передать ссылку на данные в окно редактора до привязки данных к визуальным элементам самого редактора. XAML основного окна (укорочено)
Обработчик события основного окна
XAML редактора
Этот код не работает!!
Это сообщение отредактировал(а) DmitriyS - 9.7.2011, 20:19 |
||||||||
|
|||||||||
| DmitriyS |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 9.7.2011 Репутация: нет Всего: нет |
Возможно, я чтото не так написал?
Это сообщение отредактировал(а) DmitriyS - 10.7.2011, 22:14 |
|||
|
||||
| Kefir |
|
|||
|
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 22 Всего: 87 |
Так создай проперти в твоем MaterialEdit, куда будешь запихивать нужный объект.
|
|||
|
||||
| DmitriyS |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 9.7.2011 Репутация: нет Всего: нет |
Нет Kerif, такой фокус не прокатит. Ибо resMatDataProvider используется в привязке (Binding), где нужены объекты source и target.
В моем случае из-за отсутствия, можно сказать, интерфейса связываения source, прикручиваться не к чему. Получается привязка null=>target. До того как привязать данные, загрузчик XAML проверяет наличие источника и уведомляет об отсутствии оного возбуждением исключения.(Это если скомпилируется) Например:
Попробуй теперь удалить <l:MyDataClass ...> ... верно. JIT компилятор выдаст ошибку. Не скомпилируется. Не соберется. Приложения не будет. Что будеш делать если: экземпляр класса MyDataClass уже существует в коде и должен быть источником данных для двух или более окон но не должен быть статическим? Я-бы мог создать класс-обертку, заключающий в себе resMatDataProvider и DataRowView и передать его редактору в DataContext. Но это опять таки не прокатит. Тем не менее. Вопрос в том, что-бы в ресурс XAML запихнуть данные из кода до его инициализации. Но при загрузке и инициализации XAML словарь ресурсов окна сбрасывается, что в моем случае совершенно не уместно. Это сообщение отредактировал(а) DmitriyS - 11.7.2011, 21:03 |
|||
|
||||
| Kefir |
|
||||
|
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 22 Всего: 87 |
Я честно не занимался такими экспериментами как ты, но сделай так:
Код окна:
Всё должно прекрасно обновиться (и байндинги тоже). Я, конечно, не очень понимаю зачем в этом случае нужен ObjectDataProvider, но наверное есть на то свои причины (возможно ты просто выкладываешь упрощенный код своей системы). Удачи. Приходи назад, если шо. |
||||
|
|||||
| DmitriyS |
|
||||||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 9.7.2011 Репутация: нет Всего: нет |
Да. Спасибо добрый человек. Заработало. Если есть идеи как не использовать ObjectDataProvider. С радостью рассмотю предложения. Основное окно
Окно редактора
|
||||||
|
|||||||
| DmitriyS |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 9.7.2011 Репутация: нет Всего: нет |
Через несколько минут упорного умстенного труда.
Я так думаю, без ObjectDataProvider это было бы, мягко говоря, затруднительно. Или мне это только кажется? Еще раз спасибо за совет. Теперь можно "воевать" по взрослому, потому как это, лиш мелкая таблица БД из большого програмного комплекса |
|||
|
||||
| Kefir |
|
|||
|
«Hakuna Matata» ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1878 Регистрация: 25.1.2003 Где: Tampere, Suomi Репутация: 22 Всего: 87 |
Да, тут в твоем случае особо ничего не сделаешь. Параметры конвертеров нельзя биндить. Поэтому ничего лучше чем ObjectDataProvider в голову не идет. Удачи!
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | WPF и Silverlight | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |