<ListBox x:Name ="listBox">
<ListBoxItem x:Name ="ListBoxItem1" Content="ListBoxItem"/>
<ListBoxItem x:Name ="ListBoxItem2" Content="ListBoxItem"/>
<ListBoxItem x:Name ="ListBoxItem3" Content="ListBoxItem"/>
</ListBox>
如上述代码,我想根据ListBox来操作下面的ListBoxItem,比如修改背景颜色,修改Content...
方法1:
ListBoxItem listBoxItem = (ListBoxItem)listBox.ItemContainerGenerator.ContainerFromIndex(nIndex);
listBoxItem.Content = "ContentName";
listBoxItem.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#CCCCCC"));
其中nIndex为想要操作的ListBoxItem的索引,从0开始.
但是有的时候listBoxItem会返回null,分析原因可能是因为调用这个方法要基于页面已经加载完毕,否则找不到下属的控件.
如果上述方法没有成功可以尝试如下,
方法2:
ListBoxItem listBoxItem = listBox.Items[nIndex] as ListBoxItem;
listBoxItem.Content = "ContentName";
listBoxItem.Foreground = new SolidColorBrush((Color)ColorConverter.ConvertFromString("#CCCCCC"));