【发布时间】:2014-11-20 08:22:13
【问题描述】:
我正在尝试使用 itemtapped 属性将事件绑定到菜单页面上的 ListView。目前我在我的应用程序中使用 MVVM (Xamarin form labs) 框架。我想要完成的是当用户点击应用程序导航到正确视图的菜单项时。
这里是 xaml 代码:
<ListView x:Name="list"
ItemsSource="{Binding MenuItems}"
SelectedItem="{Binding SelectedItem}"
ItemTapped= SET-BINDING-HERE >
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<ViewCell.View>
//setup template here
</ViewCell.View>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
我想将 itemtapped 事件绑定到这个函数:
public void NavigateTo(object sender, ItemTappedEventArgs args)
{
var test = args.Item as MenuModel;
cPageTypes.GetByKey(test.CommandParameter)
.SwitchRootPage(AIMCore.ViewModels.ElliottBaseViewModel.MasterPage);
list.SelectedItem = null;
AIMCore.ViewModels.BaseViewModel.MasterPage.IsPresented = false;
}
如果我将函数添加到后面的视图代码中,然后设置 ItemTapped='NavigatTo',我目前可以让它工作,但这似乎是错误的,因为它违背了 MVVM 概念。我真正想做的是将事件绑定到我的 ViewModel 中的相同功能,如下所示:
<ListView x:Name="list"
ItemsSource="{Binding MenuItems}"
SelectedItem="{Binding SelectedItem}"
ItemTapped= "{Binding NavigateTo}" > // this binding is to the ViewModel
但是这不起作用,或者我没有正确执行。当我尝试以这种方式实现它时,代码会产生并出错。
错误: Xamarin.Forms.Xaml.XamlParseException:在 Xamarin.Forms.Xaml.BaseValueNode.SetPropertyValue 找不到名称 ItemTapped 的属性
【问题讨论】:
标签: c# xaml mvvm xamarin xamarin.forms