windows phone 中,怎么改变Listbox的选择Item的颜色。
本帖最后由 lzp5115 于 2013-02-28 16:42:10 编辑 我有个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。
if (value == parameter) 这条语句不对,parameter 为空。
不知道有什么方法可以实现这个功能(不太想用继承,最好能在xaml中就能实现)?
[解决办法]
http://msdn.microsoft.com/zh-cn/library/system.windows.data.ivalueconverter.convert(v=vs.95).aspx
看看这个
[解决办法]
if(value != nu11) //表示有选中项
{
return new SolidColorBursh(...)
}
else //表示没有选中项
{
return new SolidColorBursh(...)
}
parameter参数不需要!
[解决办法]