У меня есть приложение «Панорама», в котором одним из элементов панорамы является «Избранное». Для начала я использовал стандартный проект Windows Phone с ItemViewModel и MainViewModel. Я заменил lineone / two / three простой строкой «Favorite». Я фактически загружаю данные избранного из изолированного хранилища в функцию LoadData () и заполняю «Элементы», используя:
IsolatedStorageFileStream favoritesFile = store.OpenFile("favorites.txt", FileMode.OpenOrCreate, FileAccess.Read);
string lines;
Items.Clear();
using (StreamReader reader = new StreamReader(favoritesFile))
{
while ((lines = reader.ReadLine()) != null)
{
this.Items.Add(new ItemViewModel() { Favorite = lines });
}
}
Мне бы хотелось, чтобы я мог не только просматривать избранное в этом элементе панорамы, но и удалять его (добавление элемента в качестве избранного рассматривается при переходе на страницу сведений о нем). Я рассмотрел два варианта:
- Отображение желтой звезды рядом с текстом. Нажатие на звездочку удалит элемент из списка.
- Какое-то нажатие и удержание -> удалить действие.
Во-первых, я не уверен, как обновить список после удаления элемента. По-видимому, я не могу перейти на ту же страницу :) Кроме того, как я могу определить, какая звезда соответствует какому любимому элементу, поскольку любимый элемент будет связан в xaml, например, так:
<TextBlock Margin="10,10,0,0" Text="{Binding Favorite}" TextWrapping="Wrap" Style="{StaticResource PhoneTextSubtleStyle}" Grid.Column="0" />
<Button Grid.Column="1" Click="FavoriteButton_Click" BorderThickness="0" Height="40">
<Button.Background>
<ImageBrush ImageSource="/WindowsPhonePanoramaApplication2;component/Images/appbar.feature.email.rest.png" Stretch="None" />
</Button.Background>
</Button>
Во втором случае обнаружение является проблемой, плюс я даже не знаю, поддерживается ли это для сторонних приложений. Я склоняюсь к первому варианту, поскольку он довольно интуитивно понятен. Пожалуйста, сообщите.