在自定义视图单元格中创建可绑定事件处理程序

时间:2018-09-02 06:47:07

标签: listview xamarin.forms xamarin.uwp

我已按照Microsoft文章Customizing View Cell为用于UWP的列表视图中的视图单元创建了一个本机ViewCellRenderer。 本文介绍了如何为可使用本机控件显示的视图单元创建可绑定属性。我想要的是能够创建一个可绑定的事件处理程序,以便可以将此事件与本机UWP代码(如Textblock的Tapped事件)绑定。

示例-在敲击文本块“名称”的事件时,我想导航到其他页面。导航逻辑是在页面的视图模型内编写的,在该页面中,我使用带有自定义视图单元的列表视图。如何在自定义视图单元格中创建可绑定事件处理程序,以便可以将其与本机代码的Tapped事件绑定。

1 个答案:

答案 0 :(得分:1)

我在Xamarin中发现了similar case。我们的团队成员已答复:根据您的要求,关键点是使用XamlBehaviors将TextBlock的Tapped事件与自定义视图单元格中定义的命令绑定。

Xaml

<Application.Resources>
    <ResourceDictionary>
        <DataTemplate x:Key="ListViewItemTemplate">
            <Grid>                
                <TextBlock Text="{Binding TextName}" >
                <interactivity:Interaction.Behaviors>
                    <core:EventTriggerBehavior EventName="Tapped">
                        <core:InvokeCommandAction  Command="{Binding TappedCommand}"/>
                    </core:EventTriggerBehavior>        
                </interactivity:Interaction.Behaviors>
                </TextBlock>
            </Grid>
        </DataTemplate>
    </ResourceDictionary>
</Application.Resources>

然后,您可以使用TappedCommand方法调用导航操作。