Первый вариант: конвертер
Для этого можно использовать конвертер.Например:
<t:FooterTemplate Text="{Binding SourceFooter }" IsVisible="{Binding SourceFooter, Converter={StaticResource StringEmptyConverter} }" />
И тогда конвертер выглядит следующим образом:
public class StringEmptyConverter : IValueConverter {
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
return !String.IsNullOrWhiteSpace(((string)value));
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {
throw new NotImplementedException();
}
}
Преобразователь просто возвращает false, если строка пустая или пустая.
Чтобы использовать его в качестве StaticResource, вам, конечно, также нужно добавить строку в ResourceDictionary в файле App.xaml.
<converters:StringEmptyConverter x:Key="StringEmptyConverter" />
Второй вариант: DataTrigger
Триггеры могут изменять свойства визуального элемента.Как следует из названия: они запускаются, когда определенное свойство (SourceFooter
) равно определенному значению (""
).
<t:FooterTemplate Text="{Binding SourceFooter}" >
<t:FooterTemplate.Triggers>
<DataTrigger
Binding="{Binding SourceFooter}"
TargetType="t:FooterTemplate"
Value="">
<Setter Property="IsVisible" Value="false" />
</DataTrigger>
</t:FooterTemplate.Triggers>
</t:FooterTemplate>
Что я использую?
В этом случае вы должны пойти на решение Converter
.Вы, вероятно, будете проверять, пуста ли строка где-то еще в вашем приложении.На мой взгляд, DataTriggers могут быть полезны для более экзотических «триггеров».