UWP/XAML如何更改数据绑定中的单个项
本文关键字:单个项 数据绑定 何更改 XAML UWP | 更新日期: 2023-09-27 18:03:43
例如,我将Book对象集合数据绑定到ListView。ListView包含一个"Book"类型的TextBlock。Title",因此UI将显示集合中书名的列表。但是,如果对于集合中的某些单独的Book,布尔属性"Book"。IsCheckedOut"为真,我希望这些特定的书以黑体(或斜体或其他颜色)显示。绑定集合中的特定元素如何具有分配给它们的唯一属性?
使用转换器,像这样:
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。
要实现这一点,您需要:
-
为你的
ListView
设计两个DataTemplate
,一个用黑体字,另一个不用 -
实现
DataTemplateSelector
类 -
在你的
ListView
中使用DataTemplateSelector
-
将数据添加到您的集合中,并将此集合设置为
ListView
中的ItemsSource
。