Данная статья описывает метод ассоциации множества привязок с одним единственым свойством зависимости в приложениях Silverlight. WPF уже обладает данной функциональностью в виде MultiBindings, а код в приведенной статье копирует данную функциональность.
Данная статья описывает метод ассоциации множества привязок с одним единственным свойством зависимости в приложениях Silverlight. WPF уже обладает данной функциональностью в виде MultiBindings, а код в приведенной статье копирует данную функциональность.
Простое приложение демонстрирует данную технику, при этом у нас будет три текстовых блока для ввода данных, привязанных к индивидуальным свойствам простого объекта Person, а текстовый блок заголовка будет привязан к обоим свойствам Forename (Имя) и Surname (Фамиля). Попробуйте отредактировать фамилию или имя и вы увидите, как будет обновлен заголовок.
XAML для данного приложения выглядит примерно так (излишние свойства/элементы были опущены для ясности):
Наше решение проблемы множественной привязки заключается во введении класса, MultiBinding , который ассоциируется с элементом, который обладает возможностью множественной привязки посредством привязанного свойства BindingUtil.MultiBinding. Следующая диаграмма демонстрирует эту идею:
Привязки свойств Forename и Surname являются привязками MultiBinding (какие именно свойства мы узнаем далее). MultiBinding имеет ассоциированный Converter типа - этот класс, предоставленный клиентом, реализует процесс преобразования:
public class TitleConverter : IMultiValueConverter { public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture) { string forename = values[0] as string; string surname = values[1] as string;
Интерфейс IMultiValueConverter практически такой же, как IValueConverter, только в этом случае, массив объектов передается преобразователю, где каждый объект содержит текущее значение привязки для каждой привязки по порядку.
Имея данный преобразователь значений, класс MultiBinding может определить изменения в двух привязках, затем пересчитать значение ConvertedValue , которое привязано целевому свойству нашего TextBlock. В этом и заключается идея, тем не менее не все так просто.
В этой статье обсуждаются 12 вопросов, касающихся связывания, размещения, использования сервисов WCF, и как подключаться к базе данных при помощи Silverlight.
WPF и Silverlight,
Реализация шаблонов мастер страниц в Silverlight Есть несколько статей о том, как реализовать шаблон мастер страницы в Silverlight. Вопрос в том, действительно ли нам нужна возможность создавать шаблон мастер страницы в Silverlight. Если есть преимущества использования функции шаблона мастер страницы в ASP.NET, то нет причины, из-за которой Silverlight не мог бы использовать это преимущество...
WPF и Silverlight,
Элемент управления TreeView в Silverlight Элемент управления TreeView идеально подходит для отображения данных иерархической структуры. Несмотря на то, что вы можете выполнить многое при помощи данного элемента управления, в своей простейшей форме он достаточно легок в использовании, как только вы разберетесь в основной рекурсивности, требуемой им....
WPF и Silverlight,
Элемент управления HeaderContentControl в Silverlight Данная статья представляет собой обзор элемента управления HeaderContent из Silverlight Toolkit. Для того, чтобы увидеть HeaderContentControl в действии создайте новое приложение Silverlight, а также новую ссылку на Microsoft.Windows.Controls.dll из toolkit....