【问题标题】:WPF Bind Visible From functionWPF 绑定可见函数
【发布时间】:2020-04-21 23:39:51
【问题描述】:

在我的主要角色中,我有 3 个角色

我想在角色 1 中显示的一些按钮 我想在角色 1 和 2 中显示的一些按钮 等等

我尝试设置 Visibilityby 功能,但它不起作用

<Button Tag="2,3" Visibility="{ Binding getVisible()}" Content="צפייה בבקשות" Click="AddHost_Click" Background="{x:Null}" BorderBrush="{x:Null}" Foreground="#FFA2A2A2" FontSize="15" FontWeight="Bold" VerticalAlignment="Center"/>

我如何动态更改可见

【问题讨论】:

  • 请不要将代码发布为图片。并与我们分享后面的代码,getVisible() 返回是什么
  • 参见stackoverflow.com/questions/14692461/… 您必须绑定到实现inotifypropertychanged 的​​类中的公共属性。如果您更喜欢 bool,您要么需要使类型可见,要么使用转换器。

标签: wpf


【解决方案1】:

不能绑定到getVisible() 之类的方法。您只能绑定到公共属性,因此您需要创建一个属性。它可能会调用getVisible():

public Visibility IsVisible => getVisible();

XAML:

<Button Visibility="{Binding IsVisible}" />

如果IsVisible/getVisible() 返回bool,您还需要将其转换为Visibility 值。您可以使用内置的BooleanToVisibilityConverter

<Button Tag="2,3" Content="צפייה בבקשות" Click="AddHost_Click" Background="{x:Null}" BorderBrush="{x:Null}" 
        Foreground="#FFA2A2A2" FontSize="15" FontWeight="Bold" VerticalAlignment="Center">
    <Button.Visibility>
        <Binding Path="IsVisible">
            <Binding.Converter>
                <BooleanToVisibilityConverter />
            </Binding.Converter>
        </Binding>
    </Button.Visibility>
</Button>

【讨论】:

  • getVisible 不返回布尔值,这是我的函数: public System.Windows.Visibility getVisible() { return System.Windows.Visibility.Hidden; } 和我的按钮代码: 按钮显示
  • @24sharon:你看我的回答了吗?那就再读一遍。 getVisible 必须是属性,您才能绑定到它。
猜你喜欢
  • 1970-01-01
  • 2011-06-14
  • 1970-01-01
  • 2011-08-31
  • 2016-01-31
  • 2014-03-31
  • 2018-07-28
  • 2018-12-28
  • 2011-07-17
相关资源
最近更新 更多