我遇到这种情况:
<TextBlock x:Name="NoMonthDataTextBlock"
Text="No data."
Margin="20,10,0,0"
Foreground="Black"
FontWeight="Bold"
FontSize="20"
Visibility="{Binding SelectedSymbolItem.NoData, Converter={StaticResource FieldVisible}}"/>
<tools:BoolToVisibilityConverter x:Key="FieldVisible" TrueValue="Visible" FalseValue="Collapsed" />
public class BoolToVisibilityConverter : BoolToValueConverter<Visibility>
{
}
public class BoolToValueConverter<T> : IValueConverter
{
public T FalseValue { get; set; }
public T TrueValue { get; set; }
public object Convert(object value, Type targetType, object parameter, string language)
{
if (value == null)
return FalseValue;
else
return (bool)value ? TrueValue : FalseValue;
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
return value != null ? value.Equals(TrueValue) : false;
}
}
问题是当SelectedSymbolItem is null
字段可见且我不希望这样。
我希望只有当SelectedSymbolItem不为null并且具有空数据时,此textBlock才可见。 我曾考虑使用Multibing,但我的目标是Windows应用商店应用(8.0),此处不支持。 (一个条件为非null,另一个条件为无数据。)
当SelectedSymbolItem为null时,如何使textBlock折叠?
答案 0 :(得分:2)
放下一个倒塌的FallbackValue, 在你的情况下,这将工作在Visibility属性上会有一个Binding错误,它将采用提供的FallbackValue。
<TextBlock x:Name="NoMonthDataTextBlock"
Text="No data."
Margin="20,10,0,0"
Foreground="Black"
FontWeight="Bold"
FontSize="20"
Visibility="{Binding SelectedSymbolItem.NoData,Converter={StaticResource FieldVisible},FallbackValue=Collapsed}"/>
<tools:BoolToVisibilityConverter x:Key="FieldVisible" TrueValue="Visible" FalseValue="Collapsed" />