我正在尝试更改列表框中所选项目的背景颜色。它会改变背景颜色但下次如果我选择另一个项目,则前一个选定项目的背景颜色应设置为null或默认值。
列表框名称是lstContacts。
private void lstContacts_SelectionChanged(object sender,SelectionChangedEventArgs e)
lstContacts.ClearValue(ListBox.BackgroundProperty);//its not working
ListBoxItem item = lstContacts.ItemContainer.ContainerFromItem(lstContacts.SelectedItem) as ListBoxItem;
item.Background = new SolidColorBrush(Colors.Red);
任何人都可以帮助我吗?
答案 0 :(得分:3)
利用项目的索引
var item = ListBox_Main.Items[0] as ListBoxItem ;
item.Background = new SolidColorBrush(Windows.UI.Color.FromArgb(255, 255, 255, 0))
答案 1 :(得分:1)
这很简单。在更改其他项目的背景颜色之前,请重置整个列表视图背景颜色。
lstContacts.Background = new SolidColorBrush("your original color here");
然后继续
ListBoxItem item = lstContacts.ItemContainer.ContainerFromItem(lstContacts.SelectedItem) as ListBoxItem;
item.Background = new SolidColorBrush(Colors.Red);
答案 2 :(得分:0)
无论何时选择,所选项目都已经设置了背景颜色,无论是以编程方式还是通过点击项目。
如何设置所选项目的背景颜色?您是否更改了ControlTemplate
的{{1}}?