首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Windows Mobile >

windows phone 中,如何改变Listbox的选择Item的颜色

2013-06-25 
windows phone 中,怎么改变Listbox的选择Item的颜色。本帖最后由 lzp5115 于 2013-02-28 16:42:10 编辑我有

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参数不需要!
[解决办法]

引用:
[1 楼 long75719507 的回复:]

已经看过了,没什么帮助,因为它不能把item本身传入 Convert 函数,它只传 (object value)这个值,而(object value)就是当前当前选中item的Context

的确是,看来你的这个需求只能是在选中的时候变一下item的Context然后通过item的Context来判断谁被选中。

热点排行