2
我一直在嘗試更改ListBox
中的TextBlock
的顏色,它從綁定中獲取它的顏色。更改綁定的LongListSelector或列表框的項目顏色
<TextBlock Text="{Binding Title}" TextWrapping="Wrap" Foreground="{Binding ItemColor, Converter={StaticResource ColorConverter}}" Style="{StaticResource posttitle}" d:LayoutOverrides="Width"/>
下面是其中初始期間工作的轉換器渲染:
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value == null)
return new SolidColorBrush(Colors.Red);
Color colorValue = (Color)value;
return new SolidColorBrush(colorValue);
}
SelectionChanged事件期間,我分配了一個新的顏色像這樣的項目:
private void List_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var listbox = (LongListSelector)sender;
if (listbox.SelectedItem == null)
return;
MyItem item = (MyItem)listbox.SelectedItem;
if (item.Clicked)
{
// Change some value
item.Clicked = true;
item.ItemColor = new Color() { A = 0xFF, R = 0xBD, G = 0xB7, B = 0x6B };
}
}
如果我把一個斷點並檢查datacontext,我可以看到源中的值已更改,但在視覺上LongListSelector
不會改變外觀。綁定是通過ObservableCollection
和ItemColor
通知更改。
任何幫助表示讚賞。
顯然'ItemColor'沒有引發'PropertyChanged'事件。發佈「MyItem」類的源代碼。 –