Избранное в приложении Windows Phone Panorama - PullRequest
0 голосов
/ 06 июня 2011

У меня есть приложение «Панорама», в котором одним из элементов панорамы является «Избранное». Для начала я использовал стандартный проект 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>

Во втором случае обнаружение является проблемой, плюс я даже не знаю, поддерживается ли это для сторонних приложений. Я склоняюсь к первому варианту, поскольку он довольно интуитивно понятен. Пожалуйста, сообщите.

1 Ответ

1 голос
/ 06 июня 2011

Если ваш список задач представляет собой ObservableCollection, которая отправляет событие NotifyPropertyChanged при его изменении, тогда вам не нужно беспокоиться о перезагрузке списка самостоятельно, привязка данных позаботится об этом сама.я считаю, что обнаружение, нажатие и удержание является довольно распространенным явлением.Компонент «Нажми и удерживай» (контекстное меню) доступен бесплатно в Silverlight Toolkit для WP7 (http://silverlight.codeplex.com)

...