【问题标题】:Visibility binding可见性绑定
【发布时间】:2013-12-13 04:00:47
【问题描述】:

我有这种情况:

    <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 字段可见时,我不希望这样。

我希望这个 textBlock 仅在 SelectedSymbolItem 不为空且数据为空时可见。 我曾考虑过使用 Multibing,但我的目标是 Windows 商店应用程序(8.0),此处不支持。 (一个条件是不为空,另一个条件是没有数据。)

当 SelectedSymbolItem 为空时,如何使 textBlock 折叠?

【问题讨论】:

  • FallbackValue="Collapsed"

标签: wpf binding windows-store-apps


【解决方案1】:

放置一个 FallbackValue 为 Collapsed , 在您的情况下,这会起作用,可见性属性上会出现绑定错误,它将采用提供的 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" />

【讨论】:

  • 谢谢@eran otzap,我不知道回退参数。
  • 转换器是通用的,不知道怎么弄。我将编辑我的问题并将转换器代码放在那里。
  • 是的,我只是想到了这一点并编辑了我的问题,后备将是要走的路
  • 我已经添加了转换器。请立即查看。
猜你喜欢
  • 2014-08-20
  • 2011-12-18
  • 2012-02-09
  • 1970-01-01
  • 2010-11-02
  • 2015-01-10
  • 1970-01-01
  • 2010-09-27
  • 2012-05-15
相关资源
最近更新 更多