所以我有一个简单的RSS阅读器,它有一个在应用程序启动时更新的提要。如何添加保持新未读项目的颜色不同的功能?我想让用户看到自上次打开应用程序以来哪些帖子是新的。
答案 0 :(得分:3)
假设您有类似的模型;
public class RSSItem {
public bool IsUnread { get; set; }
public string Title { get; set; }
}
您需要使用ForegroundColor
TextBlock
将IsUnread
的{{1}}绑定到IValueConverter
属性,并返回bool
1}}。所以你的XAML可能看起来像;
Color
不要忘记将<phone:PhoneApplicationPage.Resources>
<converters:UnreadForegroundConverter x:Key="UnreadForegroundConverter" />
</phone:PhoneApplicationPage.Resources>
<ListBox x:Name="RSSItems">
<DataTemplate>
<TextBlock Text="{Binding Title}" Foreground="{Binding IsUnread, Converter={StaticResource UnreadForegroundConverter}}" />
</DataTemplate>
</ListBox>
属性添加到您网页的代码中。
然后,您需要实现xmlns:converters
来执行布尔颜色转换;
IValueConverter
显然,您需要将列表框public class UnreadForegroundConverter : IValueConverter {
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
if ((bool)value == true) {
return Application.Current.Resources["PhoneAccentColor"];
}
return Application.Current.Resources["PhoneForegroundColor"];
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
throw new NotImplementedException();
}
}
绑定到RSSItems
的集合。例如
RSSItem
希望有所帮助。