2016-08-23 25 views
0

たとえば、BookオブジェクトのコレクションをListViewにバインドします。 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

正しい方法はListViewItemTemplateSelectorを実装することです、別の質問で私の答えを確認することができます:Multiple format types listview in C# and XAML

これを実装するには、次のものが必要です。あなたのListViewため

  1. デザイン2 DataTemplate、太字で1を、他のものをありません。

  2. DataTemplateSelectorのクラスを実装します。あなたのListViewでこのDataTemplateSelectorを使用

  3. あなたのコレクションにデータを追加し、このコレクションをListViewItemsSourceと設定してください。

関連する問題