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

本文关键字:单个项 数据绑定 何更改 XAML UWP | 更新日期: 2023-09-27 18:03:43

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

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

使用转换器,像这样:

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

正确的方法是实现您的ListView的ItemTemplateSelector,您可以在另一个问题中检查我的答案:c#和XAML中的多种格式类型listview。

要实现这一点,您需要:

  1. 为你的ListView设计两个DataTemplate,一个用黑体字,另一个不用

  2. 实现DataTemplateSelector

  3. 在你的ListView中使用DataTemplateSelector

  4. 将数据添加到您的集合中,并将此集合设置为ListView中的ItemsSource