使用文本单元格时,是否可以在轻触文本时获取文本的值?

时间:2017-05-04 19:42:05

标签: xamarin xamarin.forms

文本单元格位于列表视图中。我使用Binding用数据填充文本单元格的文本。我需要在单击文本单元格时实际获取文本的值。有没有办法做到这一点?

2 个答案:

答案 0 :(得分:1)

XAML文件:

<ListView ItemsSource="{Binding MyItems}" ItemTapped="{Binding OnItemTapped}">
    <ListView.ItemTemplate>
        <DataTemplate>
            <TextCell Text="{Binding Key}" />
        </DataTemplate>
    </ListView.ItemTemplate>
</ListVIew>

使用ItemTappedBinding事件绑定到自定义事件处理程序。 在代码隐藏中,e.Item将包含抽头项,您可以从中提取键和值。

代码隐藏:

public class MyPage : ContentPage
{
    ...
    private async void OnItemTapped(object sender, ItemTappedEventArgs e)
    {
        var tappedItem = e.Item;
        // do something with tappedItem.Value...
    }
}

编辑/注意:您需要覆盖模型类中的ToString()方法,以便显示您想要的任何内容。您将显示名称空间,因为这是在任何对象上调用ToString()的默认行为。

答案 1 :(得分:0)

您可以订阅 ItemTapped ItemSelected ListView事件,并从 ItemTappedEventArgs.Item 中提取项目(如果是ItemTapped事件)或< strong> SelectedItemChangedEventArgs.SelectedItem (在ItemSelected事件的情况下)。官方Xamarin documentation

中的更多信息

如果您使用MVVM方法,请查看EventToCommandBehavior和Converter。 Xamarin有很好的例子here