【问题标题】:Filtering null values in XAML过滤 XAML 中的空值
【发布时间】:2017-05-26 14:04:23
【问题描述】:

我正在制作一个调用 Web 服务并显示数据的 UWP 应用。我将响应 JSON 反序列化为 C# 类并将其存储在 ObservableCollection 中。我的 XAML 页面上有一个 ListView 绑定到此 XAML。

但问题是响应 JSON 有时可能包含某些键的 null。在这种情况下,我只希望 XAML 代码忽略绑定到空值的此类 TextBlock。我该如何实现?

这是我的 XAML 的 sn-p

<TextBlock Text="Author"/>
<TextBlock Text="{x:Bind Author}"/>

<TextBlock Text="Education Level"/>
<TextBlock Text="{x:Bind EducationLevel}"/>

其中一些 {x:Bind XXX} 值可以为空,我不想显示这些字段。

【问题讨论】:

  • 您需要过滤源集合。如果您向我展示如何填充 ListView、XAML 和 viewmodel 属性,我可以为您提供帮助。
  • @EdPlunkett 添加。
  • 提供我要求的信息
  • 祝你好运。
  • @EdPlunkett 谢谢

标签: c# xaml uwp


【解决方案1】:

为此,您需要一个转换器类。

public class NullStringToVisibilityConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, string language)
    {
        var s = (string) value;
        return (s!=null) ? Visibility.Visible : Visibility.Collapsed;
    }

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

然后在您的页面资源中实例化转换器:

<local:NullStringToVisibilityConverter x:Key="NullStringToVisibilityConverter" />

并使用对可见性属性的绑定更新您的 xaml:

<TextBlock Text="Author" Visibility="{x:Bind Author, Converter={StaticResource NullStringToVisibilityConverter}}" />
<TextBlock Text="{x:Bind Author}" Visibility="{x:Bind Author, Converter={StaticResource NullStringToVisibilityConverter}}" />

<TextBlock Text="Education Level" Visibility="{x:Bind EducationLevel, Converter={StaticResource NullStringToVisibilityConverter}}"/>
<TextBlock Text="{x:Bind EducationLevel}" Visibility="{x:Bind EducationLevel, Converter={StaticResource NullStringToVisibilityConverter}}"/>

【讨论】:

    【解决方案2】:

    听起来您需要实现NullToVisibilityConverter,以便可以隐藏绑定为空的TextBlock。按照此相关问题中的示例进行操作:

    NullToVisibilityConverter make visible if not null

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-10-30
      • 2015-09-15
      • 2020-06-24
      • 2020-09-16
      • 2022-11-15
      • 2012-10-21
      • 2012-11-14
      相关资源
      最近更新 更多