0

Microsoft.Maui.Controls.Label - если ничего не упустил, нет никакого события связанного с кликом. Как в таком случае можно поступить ? Мне нужно при клике на него, получить текст.

Он является дочерным объектом CollectionView

Но получение всего объекта мне не нужно, так как я хотел бы каждое свойства элемента получать по отдельности.

aepot
  • 49,560
Xzizz
  • 1,592
  • 1
    Лейбл - это же не кнопка, зачем по нему кликать? А вообще странно, что в нем нет события, я думал у всех уи элементов оно есть – tym32167 May 30 '23 at 19:22
  • @tym32167 - да - согласен что не кнопка, но я в него вывожу текст и хотелось бы при клике получать содержимое. Получается что нужно использовать кнопку для этого) ? – Xzizz May 30 '23 at 19:25
  • 1
    кнопку или гиперссылку - что то, что интуитивно можно кликнуть – tym32167 May 30 '23 at 19:29
  • 1
    В проектах, где используется XAML (А MAUI один из таких), люди стараются отделять UI от кода, для этого используют не события, а команды. Если вы хотите сделать кликабельным некий объект, то у вас несколько вариантов: 1. Использовать Button, которому вы уберете фон, обводку, и все лишнее, и им уже обернете этот контрол. 2. Использовать так называемые "поведения" (Behaviors), например EventToCommandBehavior. – EvgeniyZ May 30 '23 at 19:32
  • 1
  • 1
    Можно наверное на лейбл навесить Flyout, а в него кнопку положить, а может и не можно, я не проверял. А вообще верно пишут, надо с данными работать а не с контролами. – aepot May 30 '23 at 19:59
  • @EvgeniyZ спасибо, пробую гиперссылку, но не могу никак подобраться к Command в VM, так как гиперссылка внутри CollectionView и получается достаться только свойста M, пробовал использовать RelativeSource - но всё равно не удалось. С наскока не удалось, ушёл изучать привязки. – Xzizz Jun 01 '23 at 21:38
  • 1
    Как вы наверно знаете, свойства для привязки ищутся в DataContext (не знаю как в MAUI зовется свойство), когда вы пишете условно <ListBox ItemsSource = "{Binding Items}">...</ListBox>, и пытаетесь внутри переопределить например шаблон, то все, что внутри, будет иметь DataContext к конкретному элементу привязанной коллекции, а не к классу, в котором лежит эта коллекция. Чтоб достать основной класс, вам надо перейти на слой выше, можно это сделать например через предка. – EvgeniyZ Jun 01 '23 at 21:45
  • @EvgeniyZ - всё - понял, спасибо! – Xzizz Jun 01 '23 at 21:55

0 Answers0