-
Notifications
You must be signed in to change notification settings - Fork 2
/
GroupedItemsPage.xaml.cs
99 lines (89 loc) · 5.35 KB
/
GroupedItemsPage.xaml.cs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
using MICRSSApplication.Data;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
using Windows.UI.ApplicationSettings;
using Windows.System;
// Шаблон элемента страницы сгруппированных элементов задокументирован по адресу http://go.microsoft.com/fwlink/?LinkId=234231
namespace MICRSSApplication
{
/// <summary>
/// Страница, на которой отображается сгруппированная коллекция элементов.
/// </summary>
public sealed partial class GroupedItemsPage : MICRSSApplication.Common.LayoutAwarePage
{
public GroupedItemsPage()
{
this.InitializeComponent();
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
base.OnNavigatedTo(e);
SettingsPane.GetForCurrentView().CommandsRequested += GroupedItemsPage_CommandsRequested;
}
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
base.OnNavigatedFrom(e);
SettingsPane.GetForCurrentView().CommandsRequested -= GroupedItemsPage_CommandsRequested;
}
void GroupedItemsPage_CommandsRequested(SettingsPane sender, SettingsPaneCommandsRequestedEventArgs args)
{
var viewAboutPage = new SettingsCommand("", "Privacy Statement", cmd =>
{
Launcher.LaunchUriAsync(new Uri("http://wintheweb.ru/openprivacy.html", UriKind.Absolute));
});
args.Request.ApplicationCommands.Add(viewAboutPage);
}
/// <summary>
/// Заполняет страницу содержимым, передаваемым в процессе навигации. Также предоставляется любое сохраненное состояние
/// при повторном создании страницы из предыдущего сеанса.
/// </summary>
/// <param name="navigationParameter">Значение параметра, передаваемое
/// <see cref="Frame.Navigate(Type, Object)"/> при первоначальном запросе этой страницы.
/// </param>
/// <param name="pageState">Словарь состояния, сохраненного данной страницей в ходе предыдущего
/// сеанса. Это значение будет равно NULL при первом посещении страницы.</param>
protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
{
// TODO: Создание соответствующей модели данных для области проблемы, чтобы заменить пример данных
var sampleDataGroups = SampleDataSource.GetGroups((String)navigationParameter);
this.DefaultViewModel["Groups"] = sampleDataGroups;
}
/// <summary>
/// Вызывается при нажатии заголовка группы.
/// </summary>
/// <param name="sender">Объект Button, используемый в качестве заголовка выбранной группы.</param>
/// <param name="e">Данные о событии, описывающие, каким образом было инициировано нажатие.</param>
void Header_Click(object sender, RoutedEventArgs e)
{
// Определение группы, представляемой экземпляром Button
var group = (sender as FrameworkElement).DataContext;
// Переход к соответствующей странице назначения и настройка новой страницы
// путем передачи необходимой информации в виде параметра навигации
this.Frame.Navigate(typeof(GroupDetailPage), ((SampleDataGroup)group).UniqueId);
}
/// <summary>
/// Вызывается при нажатии элемента внутри группы.
/// </summary>
/// <param name="sender">Объект GridView (или ListView, если приложение прикреплено),
/// в котором отображается нажатый элемент.</param>
/// <param name="e">Данные о событии, описывающие нажатый элемент.</param>
void ItemView_ItemClick(object sender, ItemClickEventArgs e)
{
// Переход к соответствующей странице назначения и настройка новой страницы
// путем передачи необходимой информации в виде параметра навигации
var itemId = ((SampleDataItem)e.ClickedItem).UniqueId;
this.Frame.Navigate(typeof(ItemDetailPage), itemId);
}
}
}