首页 > 解决方案 > Xamarin Forms - 如何在列表视图(itemtapped)中获取标签的值/文本?

问题描述

是否可以获得标签的文本值?

例子

例如,我点击了“甜点”,我想获取特定的 cat_code 值并将其传递给我稍后将使用的变量

我的代码

类别.cs

public class Catergory
    {
        public string cat_code { get; set; }
    }

MenuCategories.xaml

<ListView x:Name="MyCategory" ItemSelected="MyCategory_ItemSelected">
        <ListView.ItemTemplate>
      <DataTemplate>
        <ViewCell>
          <StackLayout>
                        <Label  x:Name="categoryname" Text="{Binding cat_code}" 
                   Style="{DynamicResource ListItemTextStyle}" />
                    </StackLayout>
        </ViewCell>
      </DataTemplate>
    </ListView.ItemTemplate>

  </ListView>

我应该在这里使用什么事件?itemtapped 或 selecteditem?以及如何获取 cat_code 的值或标签的文本?使用那些事件?

MenuCategories.xaml.cs

public MenuCategories()
        {
            InitializeComponent();
            GetCategoryAsync();
        }




   public async Task GetCategoryAsync()
    {
        HttpClient client = new HttpClient();
        var response = await client.GetStringAsync("http://ropenrom24-001-site1.etempurl.com/potangina/final/Restserver/index.php/category/view");

        var cat = JsonConvert.DeserializeObject<List<Catergory>>(response);

        MyCategory.ItemsSource = cat;

    }



    private void MyCategory_ItemSelected(object sender, SelectedItemChangedEventArgs e)
    {
        //what to code? to get value of the selecteditem
    }

标签: c#xamlxamarinxamarin.forms

解决方案


保存被选中的e.SelectedItem项目,因此代码可以简单地是:

private string selectedItem;

private void MyCategory_ItemSelected(object sender, SelectedItemChangedEventArgs e)
{
    var selectedCategory = e.SelectedItem as Catergory;

    if (selectedCategory != null)
        selectedItem = selectedCategory.cat_code;
}

推荐阅读