そのため、アプリの起動時に更新されるフィードを持つ単純な RSS リーダーがあります。新しい未読アイテムを別の色で保持する機能を追加するにはどうすればよいですか? 前回アプリを開いてからどの投稿が新しいかをユーザーに表示したいと思います。
質問する
135 次
1 に答える
3
あなたが次のようなモデルを持っていると仮定します。
public class RSSItem {
public bool IsUnread { get; set; }
public string Title { get; set; }
}
を取り、を返すを使用して、ForegroundColor
のTextBlock
をIsUnread
プロパティにバインドする必要があります。したがって、XAMLは次のようになります。IValueConverter
bool
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
。例えば。
ObservableCollection<RSSItem> items = new ObservableCollection<RSSItem>();
// populate items somehow
RSSItems.ItemsSource = items;
お役に立てば幸いです。
于 2012-04-25T07:31:51.957 に答える