2

我正在使用 WPF。

我想在标签不为空时显示按钮。当 Label 有值时,按钮将被隐藏。

如何使用 WPF 做到这一点?使用<Style>?

代码:

<Label Name="lblCustomerName"/>
<Button Name="btnCustomer" Content="X" Visibility="Hidden" />
4

2 回答 2

2

尝试


if (string.IsNullOrEmpty(lblCustomerName.Text)) { 
    btnCustomer.Visibility = Visibility.Hidden;
} 
else {
    btnCustomer.Visibility = Visibility.Visible;
}

于 2012-10-25T02:29:13.860 回答
1

您将需要使用转换器并将其绑定到 lblCustomer 的内容。

public class ContentNullToVisibilityConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if (value == null)
        {
            return Visibility.Hidden;
        }
        return Visibility.Visible;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

更多关于转换器的信息

然后在 xaml 中,您可以执行以下操作:

第一行需要在您的资源中定义,您需要使用您在其中创建上述类的命名空间对其进行限定。定义资源后,您可以使用第二部分。

<ContentNullToVisibilityConverter x:Key="visConverter"/>

<Label Name="lblCustomerName"/>
<Button Name="btnCustomer" Content="X" Visibility="{Binding ElementName=lblCustomer, Path=Content, Converter={StaticResource visConverter}}" />
于 2012-10-25T05:00:21.467 回答