如何在ViewModel中绑定ListView的ItemTapped属性以导航详细信息页面?
我正试图找出如何绑定ListView的条目,以便使用Prism导航详细信息页面。 我尝试使用DelegateCommand,但出现错误: 异常是:XamlParseException-位置15:7。找不到名称为的属性 视图: 当我将此DelegateCommand绑定到如何在ViewModel中绑定ListView的ItemTapped属性以导航详细信息页面?,listview,mvvm,prism,xamarin.forms,Listview,Mvvm,Prism,Xamarin.forms,我正试图找出如何绑定ListView的条目,以便使用Prism导航详细信息页面。 我尝试使用DelegateCommand,但出现错误: 异常是:XamlParseException-位置15:7。找不到名称为的属性 视图: 当我将此DelegateCommand绑定到时,导航功能正常。 可能这与Prism无关,但我找不到任何使用这个的例子。 谢谢。按钮有一个要绑定的命令属性,而ListView的ItemTapped是一个需要eventhandler的事件。如果要使用绑定,则必须使用以下行为:
时,导航功能正常。
可能这与Prism无关,但我找不到任何使用这个的例子。
谢谢。按钮有一个要绑定的命令属性,而ListView的ItemTapped是一个需要eventhandler的事件。如果要使用绑定,则必须使用以下行为:
<ListView
ItemsSource="{Binding UsersList}"
SelectedItem="{Binding SelectedUser}"
RowHeight="65" >
<ListView.Behaviors>
<b:EventToCommand EventName="ItemTapped" Command="{Binding ShowUserDetail}" />
</ListView.Behaviors>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Padding="20" HorizontalOptions="FillAndExpand">
<Label Text="{Binding Name}" TextColor="Blue" FontSize="15"/>
<Label Text="{Binding Email}" TextColor="Gray" FontSize="11"/>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
资料来源:
编辑:
是中的一种行为。我相信Barts代码片段在某种程度上也能起作用,但我真的不知道该如何实现,也不知道该实现什么。我建议更好的解释和一些工作代码示例 我找到了有效的解决方案 在添加nuget包“xamarin forms behaviors”(在portable和所有子项目iOS、Android…)之后,我在ListView中添加了以下内容:
<ListView
ItemsSource="{Binding UsersList}"
SelectedItem="{Binding SelectedUser}">
<b:Interaction.Behaviors>
<b:BehaviorCollection>
<b:EventToCommand EventName="ItemTapped" Command="{Binding ShowUserDetail}"/>
</b:BehaviorCollection>
</b:Interaction.Behaviors>
...
还有一件事,对于iOS平台,必须将其放在AppDelegate.cs/FinishedLaunching方法中(由于错误异常,此处对此进行了描述)
现在“ItemTapped”可以正常工作了。感谢您的快速响应。这里有一个文档:但是,还有一个nuget软件包。我是否需要编写名为EventToCommandBehavior的自定义方法?很抱歉,我在xamarin方面相对较新。该包似乎有EventToCommand类(没有-Behavior)。更新了回复。
<ListView
ItemsSource="{Binding UsersList}"
SelectedItem="{Binding SelectedUser}"
RowHeight="65" >
<ListView.Behaviors>
<b:EventToCommand EventName="ItemTapped" Command="{Binding ShowUserDetail}" />
</ListView.Behaviors>
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout Padding="20" HorizontalOptions="FillAndExpand">
<Label Text="{Binding Name}" TextColor="Blue" FontSize="15"/>
<Label Text="{Binding Email}" TextColor="Gray" FontSize="11"/>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<ListView
ItemsSource="{Binding UsersList}"
SelectedItem="{Binding SelectedUser}">
<b:Interaction.Behaviors>
<b:BehaviorCollection>
<b:EventToCommand EventName="ItemTapped" Command="{Binding ShowUserDetail}"/>
</b:BehaviorCollection>
</b:Interaction.Behaviors>
...
xmlns:b="clr-namespace:Xamarin.Behaviors;assembly=Xamarin.Behaviors"
Xamarin.Behaviors.Infrastructure.Init();