Выборочные данные
64Expression Blend --- Графические интерфейсы --- Выборочные данные
Во многих примерах, рассмотренных до сих пор, использовалась специальная коллекция объектов типа PurchaseOrder, которая была создана вручную в редакторе исходного кода C#. Оказывается, что при построении пользовательского интерфейса разработчикам приложений довольно часто требуется оперировать некоторым количеством временных данных.
Для этой цели реальные данные могут быть извлечены из реляционной базы данных, параллельно создаваемой коллегой-администратором базы данных, или же из отдельных бизнес-объектов, используемых в приложении и представляющих собой нечто более реальное, чем совокупность диаграмм классов, составленных на унифицированном языке моделирования (UML).
При построении приложения на платформе WPF или Silverlight в среде Expression Blend IDE имеется возможность ввести так называемые выборочные данные. Как подразумевает само название, выборочные данные позволяют визуализировать пользовательский интерфейс при отсутствии реальных данных. Выборочные данные могут быть вообще использованы при изучении способов и средств привязки данных в Expression Blend.
Ввод выборочных данных в проект
Создайте новый проект приложения WPF или Silverlight, присвоив ему имя FunWithSampleData. Затем перейдите к панели Data и выберите из меню команду для ввода выборочных данных в новый проект:
Оставьте без изменения все исходные установки параметров в открывшемся диалоговом окне. В данный момент на панели Data доступен целый ряд тестовых элементов, в том числе и специальная коллекция, являющаяся расширением класса ObservableCollection, а также два устанавливаемых по умолчанию свойства — Property1 и Property2. Дважды щелкните на текущем узле Collection и переименуйте его в PersonCollection. Аналогичным образом переименуйте оба упомянутых свойства:
Добавление дополнительных свойств
В создаваемое здесь хранилище данных можете ввести дополнительные свойства, воспользовавшись кнопкой New Property. Если же щелкните на стрелке, направленной вниз, то обнаружите четыре варианта выбора данной операции:
- Add Simple Property
Этот вариант выбирается для ввода свойства String, Number или Boolean. По умолчанию вводится свойство String, но это положение можно изменить после создания хранилища данных.
- Add Complex Property
Этот вариант выбирается для создания свойства, которое может содержать порожденные свойства (иными словами, новый класс со специальными свойствами).
- Add Collection Property
Этот вариант выбирается для создания нового класса в качестве расширения класса ObservableCollection.
Добавьте новое простое свойство Picture (Фотография), которое по умолчанию становится свойством данных типа String.
Видоизменение типов данных и значений
Добавив дополнительные свойства, можете настроить типы их данных. Для этого прежде всего щелкните на раскрывающемся списке, выполняющем функции встроенного редактора свойств. В качестве примера ниже показано, каким образом тип данных свойства Picture изменяется на Image. Следует, однако, иметь в виду, что свойство Picture может быть настроено на выбор конкретного файла изображения, например фотографий разных людей. Впрочем, это в данном случае не так уж и важно, поскольку в Expression Blend по умолчанию используются некоторые образцы изображений:
Кроме того, можете настроить типы данных всех свойств, щелкнув на кнопке Edit sample values:
В открывшемся диалоговом окне можно изменить, например, логическое значение типа Boolean в свойстве LastName на строковое значение типа String. Как видите, каждое свойство настраивается на используемый по умолчанию набор строковых данных и файлов изображений. А в нижней части данного окна вы можете задать количество записей, которые требуется сформировать:
Надеюсь, что дойдя до этого раздела, вы уже знаете, что делать дальше. В частности можете перетащить выбранные элементы из панели Data на монтажный стол. Не за будьте только выбрать режим List на панели Data, поскольку по умолчанию выборочные данные вводятся в режиме Details. На рисунке ниже приведен конечный результат перетаскивания узла PersonCollection на элемент управления типа DataGrid в режиме List:
Следует также иметь в виду, что данные можно преобразовать из обычного списка объектов в форрмат иерархического представления:
На рисунке ниже показаны те же самые данные, привязанные к новому элементу управления типа TreeView, в формате иерархического представления: