我在应用程序中有一个ListBox,里面有一个图像和文本框。我想为所选项目设置2种颜色和第3种颜色。
<ListBox.ItemTemplate>
<DataTemplate x:Name="Template1">
<StackPanel Orientation="Horizontal" >
<Image Width="100" Height="100" Source="{Binding SmallImage}"></Image>
<Grid>
<TextBlock Text="{Binding Caption}" Foreground="{Binding txtColor}"></TextBlock>
</Grid>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
当我更改前景色时,所选项目不会突出显示(我默认保留)。 我试图向ListBox添加一个事件,
private void DList_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
ListBoxItem selectedItem = DList.SelectedItem as ListBoxItem;
selectedItem.Foreground = new SolidColorBrush(Colors.Red);
}
但它显示了一个例外: 的NullReferenceException “使用”new“关键字创建对象实例”
答案 0 :(得分:0)
如果您要处理SelectionChanged
事件,那么您也可以使用SelectionChangedEventArgs
对象:
private void DList_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
var selectedDataObject = e.AddedItems[0]; // assuming single selection
ListBoxItem selectedItem =
ListBoxName.ItemContainerGenerator.ContainerFromItem(selectedDataObject);
selectedItem.Foreground = new SolidColorBrush(Colors.Red);
}