Изучите основы привязки данных Silverlight 4 - PullRequest
0 голосов
/ 15 мая 2010

Я только начинаю работать с Silverlight (без опыта WPF), и мне трудно найти источник, который дает полное объяснение привязки данных. Нет абсолютно никакого недостатка в учебниках (начиная с блогов на Silverlight.net или в блогах Скотта Гу), но все, что я нашел, это «на примере».

Существует ли ресурс, который объясняет, как привязка данных работает в Silverlight, с точки зрения Фундаментальной / Концептуальной, и обеспечивает сквозное покрытие функций связывания данных?

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

  • Почему я не могу привязать значение ползунка следующим образом ?: Value = "{Binding = Age, Mode = TwoWay}", где Age относится к свойству int в контексте данных объекта I bind in code-behind (сообщение об ошибке Visual Studio: Ожидается '[]' .
  • Как использовать свойство DataContext в VS 2010? Что такое путь, относительный источник, статический источник, ...?

1 Ответ

1 голос
/ 18 мая 2010

Механизм привязки данных Silverlight очень похож на WPF. Достойный обзор здесь http://msdn.microsoft.com/en-us/library/ms752347.aspx.

Чтобы ответить на ваши конкретные вопросы:

  • Вы должны быть в состоянии сделать это. Я только что создал небольшой проект в Blend, чтобы попробовать это, и он отлично работал. Немного хитрости в том, что механизм привязки данных фактически выполняет для вас внутреннее преобразование между double и int (так как Slider.Value является double).

  • DataContext используется для установки контекста для любых выражений привязки ниже этого элемента в дереве. Путь относительно DataContext по умолчанию. Например, если вы установили свой DataContext в своем корневом элементе на себя, используя DataContext="{Binding RelativeSource={RelativeSource Self}}", то вы можете добавить что-то вроде <TextBlock Text="{Binding Width}" />, чтобы добавить TextBlock, который показывает ширину корневого элемента. Путь - это просто неявный аргумент, поэтому вы можете сделать "{Binding Path=Width}", и он будет делать то же самое.

  • Относительный источник позволяет вам не использовать DataContext, а вместо этого использовать какой-либо другой источник, например, себя в {RelativeSource Self}.

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