0

If style definition is:

<Style x:Key="BodyTextStyle" TargetType="TextBlock" BasedOn="{StaticResource BaselineTextStyle}">
    <Setter Property="FontWeight" Value="SemiLight"/>
</Style>

How do I add property that would collapse the TextBlock if the value is null?

Thanks.

4

2 に答える 2

2
<TextBlock Visibility="{Binding RelativeSource={RelativeSource Self}, Path=Text,
               Converter={StaticResource TextIsNullOrEmptyToVisibilityConverter}}"/>

次に、を受け取り、 に基づく列挙型を返すIValueConverter名前付きを作成します。TextIsNullOrEmptyToVisibilityConverterstringVisibilitystring.IsNullOrEmpty

于 2013-11-13T17:20:00.380 に答える
2

ネイトの意見に感謝します。最終的な解決策を以下に示します。

最初にコンバーターを作成します。

public class TextIsNullOrEmptyToVisibilityConverter : IValueConverter
{
public object IValueConverter.Convert(object value, System.Type targetType,   object parameter, string language)
    {
    string Str = (string)value;
    if (string.IsNullOrEmpty(Str)) {
        return Visibility.Collapsed;
    } else {
        return Visibility.Visible;
    }
}

public object IValueConverter.ConvertBack(object value, System.Type targetType, object parameter, string language)
{
    throw new NotImplementedException();
}
}

ページ XAML ファイルでコンバーターにリソース キーを指定します。

<Page.Resources>
    <local:TextIsNullOrEmptyToVisibilityConverter x:Key="visiblityConverter"/>
</Page.Resources>

上記のネイトのようにリソースを可視性属性に適用します。

<TextBlock Visibility="{Binding RelativeSource={RelativeSource Self}, Path=Text,
           Converter={StaticResource TextIsNullOrEmptyToVisibilityConverter}}"/>
于 2013-11-13T21:02:35.857 に答える