好吧,在观看和阅读教程一周之后,我仍然无法在页面之间传递xml数据.一开始我对C#的知识为零,我可以了解更多的知识.
如果您能指导我或者至少告诉我从哪里开始,我将不胜感激.好的,这是我想要做的,但我做不到
例如;我有这样的xml数据;
<document>
<car id="01">
<manufacturer>Ford</manufacturer>
<model>Mustang</model>
<year>1965</year>
<details>The Ford Mustang of 1965 was first unveiled bla bla for example....</details>
</car>
<car id="02">
<manufacturer>Chevrolet</manufacturer>
<model>Nova</model>
<year>1967</year>
<details>The Chevrolet Nova of 1967 was bla bla for example....</details>
</car>
<car id="03">.....
</document>
我想在mainBox.xaml列表框内显示制造商和型号(可以)
TextBlock Text="{Binding manufacturer}"
TextBlock Text="{Binding model}"
当单击模型名称时,我想在另一页中显示模型的年份和详细信息(例如,details.xaml)
我可以使用下面的方法传递简单的文本,但是我无法传递绑定,因此它对我没有用.它只是列出所有汽车的详细信息和年份,而不是我在主页上选择的特定汽车.
this.NavigationService.Navigate(
new Uri("/details.xaml?......
先感谢您.对不起,打扰了.
解决方法:
与其在页面之间传递一长串XML数据,不如传递汽车的ID.由于您是将数据绑定到mainpage.xaml上的ListBox,所以我假设您具有与以下类似的类:
public Class Car {
public string manufacturer;
public string model;
public unsigned int id;
// ...
}
启动时读取XML文件,并创建一个绑定到ListBox的Car对象的ObservableCollection.然后,在ListBoxItem的Tap手势处理程序中,执行以下操作:
private void OnListBoxItemTapped( object sender, GestureEventArgs e )
{
var car = sender.DataContext as Car;
if( car != null ) {
// Navigate to page that will display the car details
NavigationService.Navigate(
new Uri( String.Format( "/detailspage.xaml?id={0}",
Uri.EscapeDataString( car.id ) ), UriKind.Relative ) );
}
}
然后,在详细信息页面的OnNavigatedTo方法中,只需使用ID查找正确的汽车,然后将该对象绑定到页面的DataContext.
请注意,如果您的ID始终为数字,则不需要EscapeDataString.如果您确实希望按原样传递所有XML数据,则也可以通过将ID替换为XML字符串数据来实现.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。