如何在metro应用程序的列表框中更改一个特定listboxitem的背景颜色?

时间:2013-03-20 08:07:29

标签: xaml windows-8 listbox microsoft-metro listboxitem

我正在开发一个c#/ xaml metro应用程序。

我有一个列表框,根据一个特定条件,我只想更改一个listboxitem背景颜色。

这就是我的尝试: -

if (lststudents != null)
{
    foreach (StudentClass obj in lststudents)
    {
        if (obj.stutype == "Red House")
        {
///I am unable to typecast to listboxitem, since it is of type student class 
ListBoxItem lstbxbitem = (obj)ListBoxItem;
///
            lstbxbitem.Background = new SolidColorBrush(Colors.Red);
        }
    }
}
lstbxbStudents.ItemsSource = lststudents ;

请注意: - 我想根据某些特定条件更改某些listboxitems的背景颜色。

请告诉我如何实现这一目标?

有哪些替代品?

提前致谢。

1 个答案:

答案 0 :(得分:2)

在ListBox中使用DataTemplate,然后您可以创建一个DataTemplateSelector来设置ListBox中特定项的样式。

您可以参考以下链接:

ItemsControl.ItemTemplate property ItemsControl.ItemTemplateSelector property

这是一篇好文章:

Using Dynamic XAML in Windows 8 Store Apps