Xamarin Извлечение текста из метки в шаблон данных (Listview) - PullRequest
0 голосов
/ 17 октября 2019

Я хочу получить текст из идентификатора метки, чтобы запросить новую загрузку при нажатии Поставщика


private async Task InitAsync()
        {


            RestAPI rest = new RestAPI("http://azipit.co.za/mica-market-app/wp-json/wc/v3/", "ck_0112f135e2fxxxxxxd621f919bc890", "cs_38ea21f4d63xxxxxxxxxx1868993b66065dcb0362fa");
            WCObject wc = new WCObject(rest);
            var products = await wc.Tag.GetAll();
            var p = await wc.Tag.GetAll(new Dictionary<string, string>() {

                    { "per_page", "80" } }); ;


            productsListView.ItemsSource = p;



        }

        async void retrieveid()
        {

        }



        async void SupplierClicked(object sender, EventArgs args)
        {


            RestAPI rest = new RestAPI("http://azipit.co.za/mica-market-app/wp-json/wc/v3/", "ck_0112f135e2f9b32cc14xxxxxxxxxxxx919bc890", "cs_38ea21f4d63exxxxx01868993b66065dcb0362fa");
            WCObject wc = new WCObject(rest);
            var products = await wc.Product.GetAll();
            var p = await wc.Product.GetAll(new Dictionary<string, string>() {
                {"tag" , tagid },
                    { "per_page", "80" } }); ;

            productsListView.ItemsSource = p;


        }

<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
             xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
             x:Class="Ecombeta.Views.Suppliers"
             Title="Suppliers"
             BackgroundColor="#c4c3c0">
    <ContentPage.Content>
        <StackLayout>

            <ListView x:Name="productsListView"
                      HasUnevenRows="True"                       
                  VerticalOptions="FillAndExpand"
                      SeparatorVisibility="None">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <ViewCell>
                            <ViewCell.View>
                                <Frame HasShadow="True" Margin="8">
                                    <StackLayout>
                                        <Label x:Name="idlabel" Text="{Binding id}"></Label>
                                        <Label Text="{Binding name}" FontSize="Large"/>
                                        <Image Source="{Binding ProductImage.src}"/>
                                        <Button Text="See Products" 
                                            VerticalOptions="CenterAndExpand"
                                            HorizontalOptions="Center"
                                            Clicked="SupplierClicked" />

                                    </StackLayout>
                                </Frame>

                            </ViewCell.View>
                        </ViewCell>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>
        </StackLayout>
    </ContentPage.Content>
</ContentPage>

Я не знаю, как получить идентификатор для "тега", которыймои поставщики в этом случае, чтобы я мог запрашивать загрузку продуктов под ним, поэтому моя логика заключалась в том, чтобы попытаться использовать топор: назовите и извлеките текст из метки, так как он правильно загружает их

Любой совет иливозможные обходные пути для этого?

Желаемый результат: нажмите кнопку у поставщика, чтобы загрузить каждый продукт под этим тегом.

1 Ответ

1 голос
/ 17 октября 2019

кнопка BindingContext будет ссылкой на соответствующий элемент для этой строки

protected void SupplierClicked(object sender, EventArgs a)
{
  var btn = (Button)sender;
  var product = (Product)btn.BindingContext;

  // now you can reference any property of Product that you need
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...