При загрузке данных из БД возникает исключение InvalidOperationException с сообщением: Элемент коллекции должен быть пустым перед использованием ItemsSource. Знаю, что для заполнения DataGrid можно использовать коллекции Items или ItemsSource, но одновременно их использовать нельзя: если задано значение для свойства ItemsSource и в коде C# добавляется элемент в Items, возникает исключение. |
Разработка Silverlight-приложений
Проектирование клиентского приложения
Разрабатываемое клиентское приложение должно обеспечивать чтение информации по сотруднику из базы данных, просмотр, редактирование, обновление, добавление и удаление данных. В качестве клиентского приложения будем использовать Silverlight. Silverlight объединяет возможности сервера, Интернета и персонального компьютера; возможности управляемого кода и динамических языков, декларативного и традиционного программирования, а также мощные средства Windows Presentation Foundation (WPF).
Silverlight позволяет создавать приложения, используя любой поддерживаемый платформой .NET Framework язык (включая Visual Basic, C# и JavaScript). Visual Studio и Expression Blend предоставляют возможности разработки приложений Silverlight. Можно создавать веб-страницы, использующие как элементы HTML, так и элементы WPF с Silverlight. Подобно HTML, XAML позволяет создать пользовательский интерфейс для веб-приложения с помощью декларативного синтаксиса с тем отличием, что XAML предоставляет значительно более мощные элементы.
Создадим для нашего решения новый проект Silverlight и назовем его SilverlightAppPersonal ( рис. 7.7).
В окне мастера создания приложения Silverlight проверьте размещение приложения и версию Silverlight ( рис. 7.8). В нашем проекте приложение Silverlight должно размещаться на существующем сайте в решении PersonService, а версия Silverlight должна быть – 4.
В обозревателе решений будет добавлен новый проект SilverlightAppPersonal ( рис. 7.9).
Для проекта SilverlightAppPersonal добавим ссылку на службу данных. В мастере добавления ссылки на службу с помощью кнопки "Найти" определим адрес и имя службы и зададим пространство имен службы – Personal ( рис. 7.10).
В обозревателе решений будет добавлена ссылка на службу ( рис. 7.11).
Добавление в проект нового файла кода позволяет приложению оперировать с классами данных, которые используются для доступа к ресурсам служб данных, и взаимодействовать с ними, как с объектами. Классы данных создаются в стандартном пространстве имен клиентского приложения, которое в нашем случае имеет имя Personal.
Для обеспечения функциональности добавим интерфейсные элементы на главную страницу приложения в соответствии с рис. 7.12.
XAML-код главной страницы приведен в приложении А.
Созданная страница клиентского приложения имеет все необходимые интерфейсные элементы для обеспечения требуемой функциональности. В XAML-коде описания главной страницы были изменены размеры и введена ссылка на сборку System.Windows.Controls:
xmlns:controls="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls"
Следующим шагом разработки является последовательное добавление функциональности приложения.