2016-08-23 54 views
0

举例来说,我将数据绑定到一个List对象的集合。 ListView包含一个“Book.Title”的TextBlock,所以UI将显示集合中的书名列表。但是,如果对于集合中的某些单独的书籍,布尔属性“Book.IsCheckedOut”是否为真,并且我希望那些特定书籍以粗体显示(或斜体或不同颜色或任何内容)。一个绑定的集合具有分配给它们的唯一属性?UWP/XAML如何更改数据绑定中的单个项目

+0

你到目前为止尝试了什么?分享一些代码以获得关于SO的帮助 –

回答

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

0

正确的方法来执行此操作ItemTemplateSelectorListView,您可以检查我的答案在另一个问题:Multiple format types listview in C# and XAML

要实现这一点,你需要:

  1. 设计两个DataTemplateListView,一个粗体,另一个没有。

  2. 执行DataTemplateSelector的类。

  3. 在您的ListView中使用此DataTemplateSelector

  4. 将数据添加到您的收藏集并将此收藏集设置为您的ListViewItemsSource

相关问题