我有一個特性WPF風格
IEnumerable<Page> Pages { get; }
Page CurrentPage { get; }
視圖模型和我有XAML綁定像這樣:
<ItemsControl ItemsSource="{Binding Pages}" Margin="10">
<ItemsControl.ItemTemplate>
<DataTemplate>
<BulletDecorator>
<BulletDecorator.Bullet>
<TextBlock Text=" • " FontWeight="Heavy" />
</BulletDecorator.Bullet>
<TextBlock Text="{Binding Title}" FontWeight="{Binding ????, Converter={StaticResource BTFWC}}" />
</BulletDecorator>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
視圖模型具有性能Pages
和CurrentPage
。無論何時頁面在視圖模型上設置爲CurrentPage
,我都希望列表中的頁面文本爲加粗。我必須代替「????」在上面的XAML中實現該目的?我想避免在頁面上擁有「IsCurrent」屬性,因爲我覺得不知道它是否是當前頁面是它的責任。
P.S.:如果您想知道,BTFWC是一個「布爾到字體權重轉換器」。
謝謝,完美的解決方案。 – Alex 2011-04-06 12:30:45