Программная привязка данных - PullRequest
0 голосов
/ 02 июня 2011

Я пытаюсь понять всю мощь и сложности привязки данных.Я работаю над достаточно сложным приложением, которому требуется модель представления для агрегирования всех разрозненных данных, а затем привязка этой модели к пользовательским элементам управления.

Моя модель представления структурирована так, чтобы создавать многочисленные классы для управления отдельными элементами данных, и я хочу связать эти классы программно, то есть вне пользовательского интерфейса.

Мне нужно связать элементы данныхдва, казалось бы, не связанных класса вместе.Затем я могу перенести данные совокупного класса в пользовательский интерфейс, используя xaml.

Другими словами, у классов "A и" B "есть строка, объявленная как" Name ". Я хочучтобы добиться их двухстороннего связывания, чтобы при изменении любого «имени» связывание заботилось об обновлении данных.

Эта задача кажется достаточно простой, но я не смог найти никаких примеров.

Ответы [ 2 ]

0 голосов
/ 02 июня 2011

Связывание классов модели представления без пользовательского интерфейса будет сложным, так как вам придется вручную перехватывать уведомления об изменениях свойств и затем устанавливать свойство агрегатов.Но MultiBinding был специально разработан для этого сценария.

Вместо создания свойства / класса агрегатного класса вы должны попробовать MultiBinding, http://msdn.microsoft.com/en-us/library/system.windows.data.multibinding.aspx

Другой способ - легко создать MultiBinding с помощью следующих расширений LambdaBinding.

Отказ от ответственности: я буду говорить о продукте моей компании здесь.

У нас есть нечто, называемое Lambda Binding, которое позволяет связывать сложные выражения, включающие другие элементы управления и любые другие элементы данных.

http://uiatoms.neurospeech.com/2011/03/ui-atoms-1-7-5-released/

0 голосов
/ 02 июня 2011

Когда дело касается привязки данных , эта страница MSDN очень актуальна.

Следует отметить, что для привязок требуется, чтобы целевым свойством было DependecyProperty, и что привязки концептуально являются односторонними, они могут просто идти в обоих направлениях, будучи установлены только на одном конце. *

Обычно вы не хотите, чтобы DependencyProperties была вашей моделью, поскольку она требует, чтобы она наследовалась от DependencyObject. Возможно, было бы лучше достичь этого отношения, ссылаясь на один и тот же объект переноса имен в обоих классах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...