Xamarin Forms Привязка двух свойств из одного элемента управления к разным контекстам - PullRequest
0 голосов
/ 10 июля 2020

Я пишу приложение Xamarin Forms и привязываю различные свойства моих элементов управления XAML к общей структуре классов, общей для всех моих страниц. Чтобы сообщить своему коду, какие элементы управления в настоящее время отображаются на верхней странице, я инициирую событие и в обработчике определяю, отображается ли этот элемент управления. Я хочу инициировать событие с помощью локальной переменной, не являющейся частью структуры класса.

<mr:Image ClassId="3" Source="{Binding ImagesDictionary[AudioOnOff],Converter={StaticResource imageFileToImageSourceConverter}}" 
   PropertyChanged="Image_PropertyChanged" 
   Opacity="{Binding CtrlTrigger}" 
   Down="Control_Image_Tapped" 
   InputTransparent="{Binding InhibitTouch}"  />

c#

public partial class HomePage : ContentPage, INotifyPropertyChanged
{ 
   public double CtrlTrigger; // I'll connect this to a notify event, understood.

   protected override void OnAppearing()
    {
        BindingContext = MainPage.CabinData;
    }
}

Как связать свойство Opacity только с двойным CtrlTrigger на моей домашней странице, позволяя привязать другие свойства изображения к классу MainPage.CabinData, как установлено контекстом привязки?

1 Ответ

1 голос
/ 10 июля 2020

В вашем XAML вверху с инструкциями xmlns дайте вашей странице имя, например x:Name="MyAwesomePage". Затем вы можете указать его в свойстве Opacity:

Opacity="{Binding CtrlTrigger, Source={x:Reference MyAwesomePage}}"
...