Привязка XAML из 2 объектов XAML -Xamarin

#c# #.net #xaml #xamarin

#c# #.net #xaml #xamarin

Вопрос:

Я хочу установить свойство IsEnabled кнопки на основе переключателя и средства выбора, используя привязку. Что-то вроде этого:

XAML:

 <Button Text="Start tracking"
            AbsoluteLayout.LayoutBounds="0, 1, 1, 0.1"
            AbsoluteLayout.LayoutFlags="All"
            x:Name="startTrackingButton"
            IsEnabled="{Binding}"
            Clicked="StartTracking_Clicked"
            VerticalOptions="CenterAndExpand"/>
  

Код, лежащий в основе:

 startTrackingButton.BindingContext = (!autoTrackingSwitch.IsToggled || frequencyPicker.IsSet);
  

Это решение не работает. Как я могу это сделать? Спасибо.

Комментарии:

1. Используйте мультитриггер : learn.microsoft.com/en-us/dotnet/api /…

Ответ №1:

Попробуйте использовать Style :

 <Style TargetType="Button">
  <Style.Triggers>
    <MultiTrigger>
      <MultiTrigger.Conditions>
        <BindingCondition Binding="{Binding Source={x:Reference autoTrackingSwitch}, Path=IsToggled}" Value="True"/>
        <BindingCondition Binding="{Binding Source={x:Reference frequencyPicker}, Path=IsSet}" Value="True"/>
      </MultiTrigger.Conditions>
      <Setter Property="Enabled" Value="True"/>
    </MultiTrigger>
  </Style.Triggers>
</Style>
  

Вы можете указать это внутри Button.Resources вашей кнопки.

Комментарии:

1.Xamarin не поддерживается MultiDataTrigger , он поддерживает MultiTrigger learn.microsoft.com/en-us/dotnet/api /…