我有个listbox,想将当前选中的item的边框变变成指定的颜色,我在xaml的ListBox.ItemTemplate是写成这样的:
<ListBox.ItemTemplate>
<DataTemplate>
<Border BorderThickness="1" BorderBrush="{TemplateBinding Background Path=SelectedItem,ElementName=PenTypeListBox, Converter={StaticResource dateConverter}}">
<Image Source="{Binding Icon}"
Height="60"
Width="60"/>
</Border >
</DataTemplate>
</ListBox.ItemTemplate>
使用了 Converter ,dateConverter的实现如下:
public class SelectConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value == parameter)
{
return new SolidColorBrush(Color.FromArgb(0xff, 0x27, 0x76, 0x96));
}
else
{
return new SolidColorBrush(Color.FromArgb(0, 0, 0, 0));
}
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
现发现这种方法判断不了当前选中Item。