以编程方式更改ListBox项目背景颜色

时间:2016-07-28 11:18:09

标签: c# wpf

我很难理解XAML如何与C#相关联。 我的问题是,我有两个不同的List<String>对象填充内容,我希望一个List<String>具有背景颜色&#39;蓝色&#39;另一个有背景颜色&#39;红色&#39;。之后我想在ListBox

中显示它

我的XAML ListBox代码:

<ListBox x:Name="ListBox1" HorizontalAlignment="Left" Height="240" Margin="81,80,0,0" VerticalAlignment="Top" Width="321" BorderBrush="#FF6C6C6C" SelectionMode="Single" SelectionChanged="ListBoxSelectionChanged">

</ListBox>

我的C#代码将所有内容加载到ListBox

public void AddItemsToListBox()
{
     foreach (var object1 in objects1)
     {
         //I want these Objects to be blue
         listBox1.Items.Add(object1.label);
     }
     foreach (var object2 in objects2)
     {
          //I want these Objects to be red
          listBox1.Items.Add(object2.label);
     }
 }

2 个答案:

答案 0 :(得分:4)

你走了:

foreach (var object1 in objects1)
{
    Thread.Sleep(1);
    listBox1.Items.Add(new ListBoxItem { Content = object1.label, Background = Brushes.Blue });
 }
 foreach (var object2 in objects2)
 {
     Thread.Sleep(1);
     ListBox2.Items.Add(new ListBoxItem { Content = objects2.label, Background = Brushes.Red });
     //I want these Objects to be red
 }

更好的方法是使用数据绑定,样式等。

答案 1 :(得分:0)

需要50个评论的声誉,所以添加为答案

为什么你不能在xaml中做到这一点?

<ListBox x:Name="ListBox1" Background="Red">

</ListBox>

只需添加背景属性,这会为列表框着色

但是如果你想在wpf上变得更好我建议学习DATABINDING,这样你就不需要手动将对象添加到列表框中

然后再看看MVVM