Дублированный контент при использовании WebClient в C # - PullRequest
0 голосов
/ 27 октября 2011

В моем приложении WP7 есть страница с категориями каналов и страница с элементами каналов. На странице feeditems я реализовал веб-клиента. Когда пользователь переходит к выбранному каналу, элементы отображаются в списке страниц каналов новостей очень хорошо. Хотя странная вещь происходит, когда пользователь нажимает кнопку «Назад» и снова переходит к тому же каналу. В этом случае listbox имеет старые значения, но веб-клиент перезагружает те же (новые) значения, что и под старыми. Итак, я дублировал контент в списке. Как я могу предотвратить это? Я хотел бы иметь старые значения, чтобы сохранить использование некоторых данных, но также у меня есть возможность обновить список с новыми значениями (с помощью кнопки панели). Чего мне не хватает;

public FeedPage()
{
    InitializeComponent();
    this.Loaded += new RoutedEventHandler(FeedPage_Loaded);
    LoadFeed();
}

private void LoadFeed()
{
    FrameworkElement root = Application.Current.RootVisual as FrameworkElement;
    var currentFeed = root.DataContext as FeedViewModel;
    WebClient client = new WebClient();
    performanceProgressBar.IsIndeterminate = true;
    performanceProgressBar.Visibility = System.Windows.Visibility.Visible;
    client.DownloadStringCompleted += new DownloadStringCompletedEventHandler(client_DownloadStringCompleted);
    client.DownloadStringAsync(new Uri(currentFeed.FeedUrl));

    _selectedFeed = currentFeed;
}

void client_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    //fetching the values
}

private void FeedPage_Loaded(object sender, RoutedEventArgs e)
{
    if (!App.ViewModel.IsDataLoaded)
    {
        App.ViewModel.LoadData();
    }
    this.DataContext = _selectedFeed;
}
...