Событие щелчка изображения в формах Xamarin - PullRequest
0 голосов
/ 26 ноября 2018

Категории MainPage

Категории XAML Snippet ->

                        <StackLayout Grid.Column ="1" Grid.Row ="0"  Orientation ="Vertical" BackgroundColor ="White" Padding ="10" HorizontalOptions ="FillAndExpand">
                            <Image Source ="banking.png" HorizontalOptions ="CenterAndExpand "/>
                            <Label Text ="Finance" FontSize ="Small " HorizontalOptions ="FillAndExpand" HorizontalTextAlignment ="Center"/>
                        </StackLayout>

                        <StackLayout Grid.Column ="2" Grid.Row ="0"  Orientation ="Vertical" BackgroundColor ="White" Padding ="10" HorizontalOptions ="FillAndExpand">
                            <Image Source ="legal.png" HorizontalOptions ="CenterAndExpand "/>
                            <Label Text ="Legal" FontSize ="Small " HorizontalOptions ="FillAndExpand" HorizontalTextAlignment ="Center"/>
                        </StackLayout>

Пожалуйста, помогите.Мне нужно передать переменную с именем "CategoryName" моему контроллеру SearchAPI и извлечь все записи базы данных, которые имеют эту категорию.Мой SearchAPIController похож на ниже

  [Route("api/Oppotunities/Search/{keyword}")]
    [ResponseType(typeof(List<Oppotunity>))]
    public async Task<IHttpActionResult> GetOppotunitiesByKeyword(string keyword)
    {
        List<Oppotunity> oppotunities = db.Oppotunities
            .Where(oppotunity => oppotunity.Title.Contains(keyword)
                                 || oppotunity.Description.Contains(keyword)
                                 || oppotunity.Category.Contains(keyword)
                                 || oppotunity.Organisation.Contains(keyword)).ToList();
        if (oppotunities == null)
        {
            return NotFound();
        }

        return Ok(oppotunities);
    } 

Ответы [ 2 ]

0 голосов
/ 26 ноября 2018

Я бы порекомендовал вам изменить структуру кода XAML.Глядя на свой фрагмент, опубликованный снимок экрана и от вашего комментария до ответа CGPA6.4 , вы можете упростить свою работу, создав настраиваемое представление и привязав к нему информацию.Например, следующий код:

<StackLayout 
    Grid.Column="2" 
    Grid.Row="0"  
    Orientation="Vertical" 
    BackgroundColor="White" 
    Padding="10" 
    HorizontalOptions="FillAndExpand">
    <Image 
        Source="legal.png" 
        HorizontalOptions="CenterAndExpand "/>
    <Label 
        Text="Legal" 
        FontSize="Small" 
        HorizontalOptions="FillAndExpand" 
        HorizontalTextAlignment="Center"/>
</StackLayout>

можно превратить в пользовательский элемент управления, например:

<MyCustomControl 
    Grid.Column="2" 
    Grid.Row="0" 
    ImageFile="legal.png"
    Text="Legal" />

Это упростит ваш XAML на много .Затем вы можете реализовать свойство Action или EventHandler, которое будет обрабатываться при нажатии на конкретное представление, что может затем превратить ваш пользовательский элемент управления в:

<MyCustomControl 
    Grid.Column="2" 
    Grid.Row="0" 
    ImageFile="legal.png"
    Text="Legal" 
    OnControlTap="OnLegalViewTap"/>

Поскольку кажется, что (из вашего изображения) вы будете использовать один и тот же вид несколько раз, вам следует рассмотреть реализацию FlexLayout вместо Grid и использовать Binding s для присоединенияфайл изображения, текст и обработчик касаний к представлению, что еще больше упростит ваш XAML и структуру кода!

0 голосов
/ 26 ноября 2018

Событие щелчка на изображении в формах Xamarin

Вам необходимо дать имя вашему Image элементу управления в xaml

<Image Source ="banking.png" x:Name="imageFinance" HorizontalOptions ="CenterAndExpand "/>

Затем в коде позадитот же файл, создайте TapGestureRecognizer и добавьте к этому Image

var tapFinance = new TapGestureRecognizer();
tapFinance.Tapped += async (s, e) =>
{
 //your code
};
imageFinance.GestureRecognizers.Add(tapFinance);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...