UWP / XAML如何更改数据绑定中的单个项目

时间:2016-08-23 06:23:54

标签: c# xaml uwp

比如说我将数据绑定到BookView对象的Book对象。 ListView包含一个TextBlock" Book.Title"因此UI将显示集合中的书名列表。但是,如果对于集合中的某些单独的书籍,布尔属性" Book.IsCheckedOut"是的,我希望这些特定的书籍以粗体显示(或斜体或不同的颜色或其他任何颜色。)绑定集合中的特定元素如何分配给它们的唯一属性?

2 个答案:

答案 0 :(得分:0)

使用转换器,如下所示:

public class BoolToFontWeightConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, string language)
    {
        var currentValue = (bool);
        return currentValue ? FontWeights.Bold : FontWeights.Normal;
    }

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

然后将它绑定在xaml中,如下所示:

<TextBlock FontWeight="{Binding IsCheckedOut, Converter={StaticResource BoolToFontWeightConverter}}" />

并且您需要将其作为资源添加到使用它的页面中,或者在应用程序中添加xaml

答案 1 :(得分:0)

执行此操作的正确方法是实施ListView的{​​{3}},您可以在另一个问题中查看我的答案:ItemTemplateSelector

要实现这一点,您需要:

  1. 为您的DataTemplate设计两个ListView,一个用粗体设计,另一个不用。

  2. 实施DataTemplateSelector

  3. 的课程
  4. DataTemplateSelector

  5. 中使用此ListView
  6. 将数据添加到您的收藏中,并将此收藏集设置为ItemsSource的{​​{1}}。