Я использую архитектуру MVVM для разработки приложения WPF ...
Пока все идет хорошо.
Я столкнулся с проблемой с видимостью привязки.Я хочу свести к минимуму написание кода в код позади, если я могу, но если это ТРЕБУЕТСЯ, то я не против этого.
У меня есть ViewModel.Эта модель предоставляет логическое значение и 2 команды.Команда подключения, команда отключения и DeviceCurrentlyConnected Bool.
В основном я решил создать 2 кнопки, но их видимость зависит от логического значения.
Так что мне было тяжело с этим.Я долго пробовал стили с триггерами.
<Button Visibility="Hidden" Content="{x:Static UIStrings:ClientStrings.DeviceBar_DisconnectCommandName}" VerticalAlignment="Center" HorizontalAlignment="Center" Height="{Binding ElementName=this.Content, Path=DesiredHeight}" Margin="10" Name="Disconnect" Command="{Binding DisconnectCurrentDeviceCommand}">
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<DataTrigger Binding="{Binding DataCotext.DeviceConnected, RelativeSource={RelativeSource FindAncestor, AncestorType=UserControl}}" Value="True">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
Я не могу заставить стили работать вообще.
В основном мне нужны следующие функции:
DeviceConnected = false: отображение кнопки с содержимым Connect и команда, связанная с ConnectCommand.
DeviceConnected = true: отображение кнопкис отключением содержимого и привязкой команды к DisconnectCommand.
для кнопки, отображаемой и привязанной к подключаемому устройству, когда в данный момент не подключено ни одно устройство, и для кнопки, отображаемой, когда подключено устройство, привязанноекоманда разъединения и сказать слово разъединить.