比如说我将数据绑定到BookView对象的Book对象。 ListView包含一个TextBlock" Book.Title"因此UI将显示集合中的书名列表。但是,如果对于集合中的某些单独的书籍,布尔属性" Book.IsCheckedOut"是的,我希望这些特定的书籍以粗体显示(或斜体或不同的颜色或其他任何颜色。)绑定集合中的特定元素如何分配给它们的唯一属性?
答案 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。
要实现这一点,您需要:
为您的DataTemplate
设计两个ListView
,一个用粗体设计,另一个不用。
实施DataTemplateSelector
。
在DataTemplateSelector
。
ListView
将数据添加到您的收藏中,并将此收藏集设置为ItemsSource
的{{1}}。