gpt4 book ai didi

WPF 按钮可见性

转载 作者:行者123 更新时间:2023-12-04 06:48:05 25 4
gpt4 key购买 nike

我正在使用 MVVM 架构来开发 WPF 应用程序...

到目前为止,一切都很顺利。

我遇到了绑定(bind)可见性的问题。如果可以的话,我想尽量减少在后面的代码中编写代码,但如果它是必需的,那么我不介意这样做。

我有一个 View 模型。该模型公开了一个 bool 值和 2 个命令。一个连接命令、一个断开连接命令和一个 DeviceCurrentlyConnected Bool。

基本上我决定制作 2 个按钮,但按钮的可见性基于 bool 值。

所以我很难做到这一点。我尝试了很长时间的带触发器的样式。

<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>

我根本无法使用样式。

基本上我想要的功能是:

设备连接 = 假:
显示一个按钮,其中包含内容 Connect 和绑定(bind)到 ConnectCommand 的命令。

设备连接 = 真:
显示一个带有内容断开连接和命令绑定(bind)到 DisconnectCommand 的按钮。

当当前没有设备连接时显示并绑定(bind)到连接设备的按钮,以及当绑定(bind)到断开命令的设备连接时显示按钮并说出单词disconnect。

最佳答案

写一个 bool 到可见性转换器,然后在你的按钮上使用转换器。 Five minute recipe for a decent BoolToVisibilityConverter是一篇关于创建/使用可见性转换器的好文章。

我过去所做的是使用 bool 到可见性转换器并将按钮的 IsEnabled 属性作为参数传递给转换器。由于按钮是由模型中的命令使用 CanExecute 方法禁用/启用的,因此您可以使用 IsEnabled 属性通过转换器设置按钮的可见性。

关于WPF 按钮可见性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3507707/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com