如何在WPF中制作条件扩展器

问题描述

我有一个非常简单的任务。

我已经创建了一个自定义扩展器,因此可以正常工作。

我只是坚持要有条件

如果我的文本内容是“更多”,我想显示扩展器,否则我不想显示

这是它的图片

I want to achieve this

解决方法

听起来像您可能需要一些custom converters。您可以执行以下操作:

public class LengthConverter : IValueConverter
{
    public object Convert(object value,Type targetType,object parameter,CultureInfo culture)
    {
        if (value?.GetType() == typeof(string))
        {
            string text = (string)value;
            return text.Length > 20 ? Visibility.Visible : Visibility.Collapsed;
        }
        return Visibility.Collapsed;
    }
    public object ConvertBack(object value,CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

然后像这样在xaml中使用它:

<Window.Resources>
    <local:LengthConverter x:Key="LengthConverter" />
</Window.Resources>

...

<Expander Visibility="{Binding SomeText,Converter={StaticResource LengthConverter}}">
    <TextBlock Text="{Binding SomeText}" />
</Expander>

这不是完整的解决方案。我不知道您的扩展器是什么样子,您将希望使其具有响应性,而不是硬编码字符串的长度。但这可能会使您走上正确的道路。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...