Xamarin.Forms and Prism 6.3.0
似乎我无法使用EventToCommandBehavior获取ItemTappedEventArgs(或发送者对象,即ListView)。
在我的XAML中,我定义了2个命名空间
xmlns:b="clr-namespace:Prism.Behaviors;assembly=Prism.Forms"
xmlns:c="clr-namespace:Prism.Converters;assembly=Prism.Forms"
也在我的XAML中,在我的ListView中我有以下
<ListView.Behaviors>
<b:EventToCommandBehavior EventName="ItemTapped" Command="{Binding ItemTappedCommand}"
EventArgsConverter="{StaticResource ItemTappedEventArgsConverter}"/>
</ListView.Behaviors>
在我的ViewModel中,我声明了我的DelegateCommand
public DelegateCommand<object> ItemTappedCommand { get; set; }
我在ViewModel的构造函数中分配命令
ItemTappedCommand = new DelegateCommand<object>(ItemTapped);
然后我实现命令
void ItemTapped(object args)
{
...
}
我还在代码的其他地方定义了&#34; MyApp / Converters&#34;文档中提出的ItemTappedEventArgsConverter
。
应用程序(Android)显示通常&#34;应用程序停止工作&#34;消息,甚至开始之前。
我能够在XAML中使用CommandParameter="MyParameter"
代替EventArgsConverter
,并且我还可以使用EventArgsParameterPath="Item"
但是当我使用EventArgsConverter
时,我收到了错误,应用程序无法启动。
我做错了什么?如何在事件行为中获取args(或发件人)?有一个我可以使用的例子吗?
答案 0 :(得分:3)
我弄清楚问题是什么。实际上有2个问题。
第一个是包含转换器的组件的引用。 而不是
xmlns:c="clr-namespace:Prism.Converters;assembly=Prism.Forms"
应该是
xmlns:local="clr-namespace:MyApplication.Converters"
(或包含转换器的程序集的名称)
第二个错误是我的内容页面中没有以下XAML
<ContentPage.Resources>
<ResourceDictionary>
<local:ItemTappedEventArgsConverter x:Key="ItemTappedEventArgsConverter" />
</ResourceDictionary>
</ContentPage.Resources>