【发布时间】:2014-02-06 12:13:16
【问题描述】:
我正在为 Windows Phone 7 构建一个应用程序,其中在 ListBox 中显示来自 Web 服务的数据。
WebService 包含以下数据:
新闻标题、新闻描述、日期开始和图像路径。
在列表框中,我显示了新闻标题、开始日期和图像路径。
现在单击列表框中的一个项目时,我想导航到另一个页面,该页面应显示所有三个详细信息以及新闻描述。
我的 xaml 是:
<ListBox Name="listBox1" SelectionChanged="listBox1_SelectionChanged">
<!-- SelectionChanged="listBox1_SelectionChanged"-->
<ListBox.ItemTemplate>
<DataTemplate>
<Button>
<Button.Content>
<ScrollViewer HorizontalScrollBarVisibility="Auto" Height="80" Width="400">
<StackPanel Orientation="Horizontal" Margin="0,0,0,0">
<Image Source="{Binding ImageBind }" Height="80" Width="120"/>
<StackPanel Orientation="Vertical">
<TextBlock Text="{Binding Path=News_Title}" TextWrapping="Wrap"></TextBlock>
<!-- <TextBlock Text="{Binding Path=News_Description}" TextWrapping="Wrap"></TextBlock>-->
<TextBlock Text="{Binding Path=Date_Start}" TextWrapping="Wrap" ></TextBlock>
</StackPanel>
</StackPanel>
</ScrollViewer>
</Button.Content>
</Button>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
.cs 文件是:
public News()
{
InitializeComponent();
KejriwalService.aapSoapClient client = new KejriwalService.aapSoapClient();
client.getarvindNewsCompleted += new EventHandler<KejriwalService.getarvindNewsCompletedEventArgs>(client_getarvindNewsCompleted);
client.getarvindNewsAsync();
progressName.Visibility = System.Windows.Visibility.Visible;
}
void client_getarvindNewsCompleted(object sender, KejriwalService.getarvindNewsCompletedEventArgs e)
{
string result = e.Result.ToString();
List<Newss> listData = new List<Newss>();
XDocument doc = XDocument.Parse(result);
progressName.Visibility = System.Windows.Visibility.Collapsed;
foreach (var location in doc.Descendants("UserDetails"))
{
Newss data = new Newss();
data.News_Title = location.Element("News_Title").Value;
//data.News_Description = location.Element("News_Description").Value;
data.Date_Start = location.Element("Date_Start").Value;
data.image_path = location.Element("image_path").Value;
data.ImageBind = new BitmapImage(new Uri( @"http://political-leader.vzons.com/ArvindKejriwal/images/uploaded/"+data.image_path, UriKind.Absolute));
listData.Add(data);
}
listBox1.ItemsSource = listData;
}
现在在新页面中说 newsdetails.xaml 我想从此页面导航并显示完整的详细信息。
请帮忙。
我被困在这个领域,因为我是这个领域的新手。
如果完成了,我的应用程序就差不多完成了。
private void listBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
if (listBox1.SelectedIndex == -1)
return;
var item = listBox1.SelectedItem as Newss;
if (!IsolatedStorageSettings.ApplicationSettings.Contains("SelectedObject"))
{
IsolatedStorageSettings.ApplicationSettings["SelectedObject"] = item;
NavigationService.Navigate(new Uri("/NewsDetails.xaml", UriKind.Relative));
}
}
【问题讨论】:
-
根据您的问题,您可以使用 listbox_selectionChanged 事件,并且您可以使用 switch case 。对于特定选定的索引,您可以通过导航服务导航到特定页面。据我了解您的问题,我建议这样做.
-
@djFox... 你能先建议我如何根据我编写的代码导航到一个新页面说 newsdetails.xaml onclicking 一个列表框项目。你能写代码吗?
-
你的 selection_change 事件代码在哪里
-
@djFox...请看我刚刚发布的代码
-
@djFox... 请参阅我为导航编写的代码。它没有导航
标签: c# xaml windows-phone-7 listbox