#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 /…