
- •Сервис-ориентированная архитектура
- •Значение soa
- •Сервис-ориентированная архитектура: основные понятия
- •Преимущества использования soa
- •Перспективы
- •Разработка Windows 8.1 приложений на xaml/с#.
- •Добавление панели поиска на страницу приложения
- •Создание страницы результатов поиска
- •Настройка внешнего вида
- •Объектно-ориентированные технологии проектирования прикладных программных систем
- •1. Основные понятия объектно-ориентированного подхода
- •2. Первая фаза жизненного цикла - анализ требований и предварительное проектирование системы. Объектно-ориентированное моделирование
- •3. Вторая фаза жизненного цикла - конструирование системы
- •4. Сравнительный анализ объектно-ориентированных методологий разработки программных систем
- •5. Третья фаза жизненного цикла - реализация объектно-ориентированного проекта
- •1. Основные понятия объектно-ориентированного подхода
- •Ассоциация
- •Свойства:
- •Технические особенности
- •Устройство веб-приложений
- •1. Создание модели процессов в bPwin
- •1.1. Инструментальная среда bPwin
- •1.2. Методология idef0
- •1.2.1. Принципы построения модели idef0
- •1.2.2. Работы (Activity)
- •1.2.3. Стрелки (Arrow)
- •1.2.4. Нумерация работ и диаграмм
- •1.2.5. Диаграммы дерева узлов и feo
- •1.2.6. Каркас диаграммы
- •1.2.7. Слияние и расщепление моделей
- •1.2.8. Рекомендации по рисованию диаграмм
- •1.2.9. Проведение экспертизы
- •1.3. Создание отчетов в bPwin
- •1.4. Стоимостный анализ (лвс) и свойства, определяемые пользователем (udp)
- •1.5. Дополнение созданной модели процессов диаграммами dfd и Workflow (idef3)
- •1.5.1. Диаграммы потоков данных (Data Flow Diagramming)
- •1.5.2. Метод описания процессов idef3
- •1.5.3. Имитационное моделирование
- •2.1. Отображение модели данных в eRwin
- •2.1.1. Физическая и логическая модель данных
- •2.1.2. Интерфейс eRwin. Уровни отображения модели
- •2.1.3. Подмножества модели и сохраняемые отображения
- •2.2. Создание логической модели данных
- •2.2.1. Уровни логической модели
- •2.2.2. Сущности м атрибуты
- •2.2.3. Связи
- •2.2.4. Типы сущностей и иерархия наследования
- •2.2.5. Ключи
- •1. Табельный номер,
- •2. Номер паспорта;
- •2.2.6. Нормализация данных
- •2.2.7. Домены
- •2.3. Создание физической модели данных
- •2.3.1. Уровни физической модели
- •2.3.2. Выбор сервера
- •2.3.3. Таблицы, колонки и представления (view)
- •2.3.4. Правила валидации и значения по умолчанию
- •2.3.5. Индексы
- •2.3.6. Задание объектов физической памяти
- •2.3.7. Триггеры и хранимые процедуры
- •2.3.8. Проектирование хранилищ данных
- •2.3.9. Вычисление размера бд
- •2.3.10. Прямое и обратное проектирование
- •2.4. Генерация кода клиентской части с помощью eRwin
- •2.4.1. Расширенные атрибуты
- •2.4.2. Генерация кода в Visual Basic
- •2.4.3. Генерация кода в Power Builder
- •2.5. Создание отчетов в eRwin
- •2.5.1. Интерфейс Report Browser
- •2.5.2 Создание нового отчета
- •2.6. Словари eRwin
- •2.6.1. Генерация словаря eRwin
- •2.6.2. Использование словаря eRwin
Создание страницы результатов поиска
Теперь
мы создадим страницу, содержащую
результаты поиска. В качестве источника
данных, будем использовать наш JSON
файл со списком товаров приложения.
1.
В Solution Explorer
для проекта выберите Add
/ New
Item
2. Выберите
шаблон страницы Items
Page и создайте файл
SearchResult.xaml.
3.
Замените код страницы. Страница будет
отображать заголовок и таблицу с
результатами поиска.
<Page
x:Name="pageRoot"
x:Class="eShop.SearchResult"
DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:eShop"
xmlns:common="using:eShop.Common"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Page.Resources>
<CollectionViewSource x:Name="itemsViewSource" Source="{Binding Items}"/>
</Page.Resources>
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid.ChildrenTransitions>
<TransitionCollection>
<EntranceThemeTransition/>
</TransitionCollection>
</Grid.ChildrenTransitions>
<Grid.RowDefinitions>
<RowDefinition Height="140"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<!-- Horizontal scrolling grid -->
<GridView
x:Name="itemGridView"
TabIndex="1"
Grid.RowSpan="2"
Padding="116,136,116,46"
ItemsSource="{Binding Source={StaticResource itemsViewSource}}"
IsSwipeEnabled="False" >
<GridView.ItemTemplate>
<DataTemplate>
<Grid Height="280" Width="310" Margin="5,10,5,10">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Border Background="{ThemeResource ListViewItemPlaceholderBackgroundThemeBrush}" Height="150">
<Image Source="{Binding ImagePath}" Stretch="None" AutomationProperties.Name="{Binding Title}"/>
</Border>
<StackPanel Grid.Row="1" Margin="0,10,0,0">
<TextBlock Text="{Binding Title}" Style="{StaticResource TitleTextBlockStyle}" TextWrapping="NoWrap"/>
<TextBlock Text="{Binding Description}" Style="{StaticResource BodyTextBlockStyle}" MaxHeight="60" />
</StackPanel>
<Button Grid.Row="2" Content="купить" Margin="0,10,0,0" HorizontalAlignment="Right" />
</Grid>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
<!-- Back button and page title -->
<Grid >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="120"/>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Button x:Name="backButton" Margin="39,59,39,0" Command="{Binding NavigationHelper.GoBackCommand, ElementName=pageRoot}"
Style="{StaticResource NavigationBackButtonNormalStyle}"
VerticalAlignment="Top"
AutomationProperties.Name="Back"
AutomationProperties.AutomationId="BackButton"
AutomationProperties.ItemType="Navigation Button"/>
<TextBlock x:Name="pageTitle" Grid.Column="1" Text="Результаты поиска: " Style="{StaticResource HeaderTextBlockStyle}" VerticalAlignment="Bottom" Margin="0,0,30,40" IsHitTestVisible="false" TextWrapping="NoWrap" />
<TextBlock x:Name="resultNumber" Grid.Column="2" Text="{Binding TotalCount}" Style="{StaticResource HeaderTextBlockStyle}" VerticalAlignment="Bottom" Margin="0,0,0,40" IsHitTestVisible="false" />
<SearchBox x:Uid="SearchBoxControl" Grid.Column="3" PlaceholderText="Поиск товаров..."
QuerySubmitted="SearchBox_QuerySubmitted" SuggestionsRequested="SearchBox_SuggestionsRequested" FocusOnKeyboardInput="True"
Width="300" Height="40" HorizontalAlignment="Right" />
</Grid>
</Grid>
</Page>
4. Откройте файл SearchResult.xaml.cs. 5. Найдите метод navigationHelper_LoadState. 6. Замените его:
private async void navigationHelper_LoadState(object sender, LoadStateEventArgs e)
{
string queryText = (String)e.NavigationParameter;
var group = await SampleDataSource.GetGroupAsync("Group-1");
if (group != null)
{
IEnumerable<SampleDataItem> itemsResult = group.Items.Where(item => item.Title.StartsWith(queryText, StringComparison.CurrentCultureIgnoreCase));
this.DefaultViewModel["Items"] = itemsResult;
this.DefaultViewModel["QueryText"] = queryText;
this.DefaultViewModel["TotalCount"] = itemsResult.Count();
}
}
7.
Запустите приложение и осуществите
поиск. Результат представлен на картинке
ниже.