以编程方式更改列表框项目背景颜色
我很难理解XAML如何与C#连接。 我的问题是,我有两个不同的List<String>
对象充满内容,我想要一个List<String>
背景颜色'蓝色',另一个背景颜色'红色'。后来,我想在我的ListBox
以编程方式更改列表框项目背景颜色
我的XAML列表框代码来显示它:
<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 partial class MainWindow : Window
{
public void AddItemsToListBox()
{
foreach (var object1 in objects1)
{
Thread.Sleep(1);
listBox1.Items.Add(object1.label);
//I want these Objects to be blue
}
foreach (var object2 in objects2)
{
Thread.Sleep(1);
ListBox2.Items.Add(object2.label);
//I want these Objects to be red
}
}
}
在这里你去:
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
}
更好的方法是使用数据绑定,样式等。
谢谢,作品像一个魅力:v –
需要50声誉评论这样添加作为回答
为什么不能在xaml中做到这一点?
<ListBox x:Name="ListBox1" Background="Red">
</ListBox>
刚才添加的背景属性,这会影响你对列表框
,但如果你想成为在WPF更好,我建议学习数据绑定,所以你不需要手动对象添加到列表框中
并在那之后看看MVVM
我不能这样做,因为我在同一个列表框中有两个不同的列表,但我希望每个列表都有不同的颜色 –
ahh我看到了,你可以改变它所在的行: ListBox2.Items.Add(objects2 。标签); 它让我相信你有2个列表框 – Sam
请参阅[此答案](http://*.com/a/18982258/1997232)。在WPF中,你必须使用绑定,这样做'Items.Add()' - 已经过时了。而'Thread.Sleep(1)'很臭。你可以使用'async/await'和'await Task.Delay()'来避免拖延UI。 – Sinatr