Xaml 使发送的对象在xamarin.cs文件中可用
我有一个新闻列表,当单击新闻时,它会将用户发送到一个包含特定新闻项的新页面 在NewsItem页面上,我想操作发送的对象,以便更改此对象中的值 我的ItemTappedEvent看起来像这样Xaml 使发送的对象在xamarin.cs文件中可用,xaml,xamarin,xamarin.forms,Xaml,Xamarin,Xamarin.forms,我有一个新闻列表,当单击新闻时,它会将用户发送到一个包含特定新闻项的新页面 在NewsItem页面上,我想操作发送的对象,以便更改此对象中的值 我的ItemTappedEvent看起来像这样 public void goToEvent(object sender, ItemTappedEventArgs e) { if (e.Item == null) { return; } var selecte
public void goToEvent(object sender, ItemTappedEventArgs e)
{
if (e.Item == null)
{
return;
}
var selectedItem = e.Item; // model
Navigation.PushAsync(new eventItem(selectedItem)); // pass the selected whole item from list to DetaiPage 'selectedItem' using constructor
((ListView)sender).SelectedItem = null;
}
我的NewsItem页面将其作为c#对象处理,如下所示
public eventItem(object selectedItem)
{
this.BindingContext = selectedItem;
InitializeComponent();
}
在我的“selectedItem”中有一个名为“product\u”的值
如果该值为“true”
我不想把它改成“Ja”。如何转换我的对象“selectedItem”,使之成为可能
提前谢谢 您需要将对象强制转换为类,如:
var mySelectedItem = selectedItem as myClass
之后,您可以访问myClass中可用的属性/字段。显然,如果这些是
私有的
,您需要将它们设置为公共的。我想创建一个ValueConverter是有意义的。你考虑过了吗?在父页面中,我可以通过循环完成很多工作:)我想知道是否有一种方法可以让它成为一个可循环的对象啊,我以为你想在数据绑定列表中看到这个,我错了。但是,如果你想认真对待MVVM,我会说将“true”转换为“ja”纯粹是一种视觉上的东西。因此,您只需按原样设置BindingContext
,并使用值转换器。但是,对于您的问题,您根本没有点击eventItem
方法?如何调用它?对象不支持foreach迭代器,因此您的示例中存在一些错误。另外,如果我们假设selectedItem是soem IENumerable,那么您仍然不能拥有SelecteTItem[item]。回答时需要考虑太多语法错误。这是我发送对象的方式,但它已经是我自己的一个名为RootObejct2的类,如果我记录我的对象,则输出为:“ODEON.Models.RootObject2”确定我首先删除了,因为示例中有太多语法错误,我不确定这是否是个问题。然而,根据你的评论,是的,这就是问题所在。由于该类未声明为对象以外的任何对象,因此无法访问其属性。