Listview 动态更改选定列表视图项的背景颜色

Listview 动态更改选定列表视图项的背景颜色,listview,windows-store-apps,Listview,Windows Store Apps,我正在开发Windows 8应用商店应用程序。我有一个显示项目列表的列表视图。我必须根据所选项目更改所选列表项目的背景色。背景色因所选项目而异。是否可以这样做?我可以更改适用于所有项目的所选项目的背景色项目。我想为特定的选定项目执行此操作 提前谢谢。这确实是可能的!通常有两种方法可以做到这一点: 首先,可以将背景值绑定到当前列表的选定项。比如: <ListView Background="{Binding RelativeSource={RelativeSource Self}, Path

我正在开发Windows 8应用商店应用程序。我有一个显示项目列表的列表视图。我必须根据所选项目更改所选列表项目的背景色。背景色因所选项目而异。是否可以这样做?我可以更改适用于所有项目的所选项目的背景色项目。我想为特定的选定项目执行此操作


提前谢谢。

这确实是可能的!通常有两种方法可以做到这一点:

首先,可以将背景值绑定到当前列表的选定项。比如:

<ListView
Background="{Binding RelativeSource={RelativeSource Self}, Path=SelectedItem.Color}"
..>

希望这有帮助!快乐编码

谢谢你的回复。这段代码会不会改变整个listview的背景颜色,而不是我基本上需要的所选项目。有可能吗?啊!误读了,对不起!因此,您只希望所选项目的所选背景与基于所选项目的背景不同?这有点难。你是如何填写这份名单的?有收藏吗?还是用Xaml?最好的方法是创建一个自定义ListViewItemStyle,覆盖ItemContainerStyle,并将其背景色绑定到内容。如果你给我更多的信息,我可以给你一个例子。
<ListView
SelectionChanged="ColorSelector_SelectionChanged"
..>

private void ColorSelector_SelectionChanged(object sender, SelectionChangedEventArgs args)
{
    if(args.NewValue != null)
    {
        //Somehow get the color you need
        (sender as ListView).Background = varYouGot; // the Brush you made
    }
    else
    {
        (sender as ListView).Background = defaultValue; // Some default value, possibly new SolidColorBrush(Colors.Transparent)
    }
}