如何在XAML中设置标签的可见性,以便在该标签的Text属性不为null的地方可见?

时间:2018-07-18 11:36:54

标签: c# xaml xamarin xamarin.forms

如何在XAML中设置标签的可见性,以便在该标签的Text属性不为null的地方可见?

我有此代码:

<Label Grid.Row="0" Text="*" IsVisible="emptyLabel1 == null"/>
<Label Grid.Row="0" Text="{Binding EmptyLabel1}" IsVisible="emptyLabel1 == null"/>
<Label Grid.Row="1" Text="*" IsVisible="emptyLabel2 == null"/>
<Label Grid.Row="1" Text="{Binding EmptyLabel2}" IsVisible="emptyLabel2 == null"/>

在我的VM中,它看起来像这样:

    private string emptyLabel1;
    private string emptyLabel2;
    public string EmptyLabel1
    {
        get { return emptyLabel1; }
        set
        {
            if (value != emptyLabel1)
            {
                emptyLabel1 = value;
                NotifyPropertyChanged("EmptyLabel1");
            }
        }
    }
    public string EmptyLabel2
    {
        get { return emptyLabel2; }
        set
        {
            if (value != emptyLabel2)
            {
                emptyLabel2 = value;
                NotifyPropertyChanged("EmptyLabel2");
            }
        }
    }

我的问题是,似乎我无法对IsVisible进行任何条件的检查。

1 个答案:

答案 0 :(得分:5)

我还没有尝试过,但是要在xaml中设置Label的可见性需要这样做

 <Label IsVisible="{Binding EmptyLabel1,
     Converter={StaticResource StringNullOrEmptyBoolConverter}"
     Text="{Binding EmptyLabel1}/>

有关更多信息,请检查 this