文本单元格位于列表视图中。我使用Binding用数据填充文本单元格的文本。我需要在单击文本单元格时实际获取文本的值。有没有办法做到这一点?
答案 0 :(得分:1)
XAML文件:
<ListView ItemsSource="{Binding MyItems}" ItemTapped="{Binding OnItemTapped}">
<ListView.ItemTemplate>
<DataTemplate>
<TextCell Text="{Binding Key}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListVIew>
使用ItemTapped
将Binding
事件绑定到自定义事件处理程序。
在代码隐藏中,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