Mam taki problem. Problem polega na tym że nie mogę wyświetlić listy aktualności z kanału rss w listboxie. Jeśli chodzi o treść wszystko dobrze się pobiera i wczytuje do listy ale nie chce się pojawić w listboxie. Problem leży chyba w kolejności wykonywanych działań. Bo pierw następuje przypisanie pustej listy do source listboxa a następnie potem lista się wypełnia.
public class RSSModelView
{
public List<RSSModel> lstFeeds;
public RSSModelView(string url)
{
WebClient myRSS = new WebClient();
myRSS.DownloadStringCompleted += new DownloadStringCompletedEventHandler(myRSS_DownloadStringCompleted);
//Read Async
myRSS.DownloadStringAsync(new Uri(url));
}
void myRSS_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
//Check if the Network is available
if (Microsoft.Phone.Net.NetworkInformation.DeviceNetworkInformation.IsNetworkAvailable)
{
lstFeeds = new List<RSSModel>();
lstFeeds = (from rss in XElement.Parse(e.Result).Descendants("item")
select new RSSModel(
rss.Element("title").Value,
rss.Element("link").Value,
rss.Element("description").Value,
rss.Element("author").Value,
rss.Element("pubDate").Value
)
).ToList<RSSModel>();
}
else
{
MessageBox.Show("No network is available...");
}
}
}
public partial class AktPage : PhoneApplicationPage
{
WebClient myRSS = new WebClient();
RSSModelView aktualnosci;
public AktPage()
{
aktualnosci = new RSSModelView(@"http://jakisadres.pl/aktualnosci?format=feed&type=rss");
InitializeComponent();
this.Loaded += new RoutedEventHandler(AktPage_Loaded);
}
void AktPage_Loaded(object sender, RoutedEventArgs e)
{
lstRSS.ItemsSource = aktualnosci.lstFeeds;
}
private void ListBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (lstRSS.SelectedItems.Count != 0)
{
RSSModel obj = aktualnosci.lstFeeds[lstRSS.SelectedIndex];
NavigationService.Navigate(new Uri("/DetailsView.xaml?title=" + obj.Title, UriKind.Relative));
}
}
}