WP7 ListBox选中的项目没有改变颜色

时间:2013-11-15 14:13:34

标签: c# wpf xaml windows-phone-7 listbox

我在应用程序中有一个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“关键字创建对象实例”

1 个答案:

答案 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);
}