gpt4 book ai didi

c# - 有没有办法覆盖列表框中所有项目的颜色?

转载 作者:行者123 更新时间:2023-11-30 21:44:37 26 4
gpt4 key购买 nike

我正在使用 WPF 进行 GUI 设计,我的 GUI 包含一个列表框。简而言之,我试图使列表框的所有项目都具有相同的前景色 #FF548E19。我知道输入到列表框中的每个单独项目的前景色可以由 XAML 属性定义:

Foreground="#FF548E19"

由于我实际上是将数据绑定(bind)与我构建的 View 模型一起使用,所以我不能简单地为每个项目设置 Foreground 属性,因为它们是在运行时填充的-时间。作为替代方案,我尝试在列表框自身 上设置Foreground 属性。这什么也没做,所有项目仍然显示为白色

问题

有没有办法确保每个绑定(bind)项(填充到列表框中的项)都获得前景色 #FF548E19 而无需在运行时手动更改颜色?

更新

其中一条评论询问我实际上是如何用项目填充我的列表框的。所以这是在属性更改时被插入列表框的数据绑定(bind)属性。

/// <summary>
/// A list of the failure codes (per entry).
/// </summary>
public List<string> FailCodes
{
get
{
return this.failCodes;
}

set
{
this.failCodes = value;
this.OnPropertyChanged("FailCodes");
}
}

此外,这是 XAML 属性(包括如何绑定(bind) ItemsSource)。

<ListBox x:Name="listBox_failCodes"
Grid.Row="0"
Margin="0" Background="{x:Null}"
HorizontalContentAlignment="Center"
BorderBrush="{x:Null}"
Foreground="#FF548E19"
ItemsSource="{Binding FailCodes}"/>

最佳答案

在您的标记中,使用 item template (如 suggested in the comments )具有静态 Foreground 值:

<ListBox x:Name="listBox_failCodes"
Grid.Row="0"
Margin="0" Background="{x:Null}"
HorizontalContentAlignment="Center"
BorderBrush="{x:Null}"
ItemsSource="{Binding FailCodes}"/>
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Foreground="#FF548E19" Text="{Binding}"></TextBlock>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>

这将应用于绑定(bind)到列表框的每个项目

关于c# - 有没有办法覆盖列表框中所有项目的颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40728760/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com