【问题标题】:WPF : Change Foreground property of Listbox item from codebehindWPF:从代码隐藏更改列表框项的前景属性
【发布时间】:2012-06-06 05:28:43
【问题描述】:

我在 WPF 中有 ListBox 控件,该控件由一些可观察的 Type:"Bus" 集合填充。

Bus 是一个包含两个属性的类

  1. 巴士名称
  2. 总线类型

所以根据总线类型,这里的项目应该有两种颜色中的一种

巴士类型:

  1. 卧铺 - 绿色
  2. 非卧铺 - 蓝色

这一切都应该发生在 WPF 代码后面。

有人知道怎么做吗.. [我不是 WPF 专家.. 稍微详细一点会更有帮助。]

【问题讨论】:

  • 为什么你想在它后面的代码中使用它可以很容易地在 XAML 中使用触发器来实现

标签: wpf listbox


【解决方案1】:

你也可以通过后面的代码来做同样的事情..我们有以下方法来实现这一点..希望对您有所帮助..

DataTrigger datatrigger = new DataTrigger();
datatrigger.Binding = new Binding("BusTypeID");
datatrigger.Value = 1;
datatrigger.Setters.Add(new Setter(ListBoxItem.BackgroundProperty, Brushes.Green));
listbox.Triggers.Add(datatrigger);

DataTrigger datatrigger2 = new DataTrigger();
datatrigger2.Binding = new Binding("BusTypeID");
datatrigger2.Value = 2;
datatrigger2.Setters.Add(new Setter(ListBoxItem.BackgroundProperty, Brushes.Red));
listbox.Triggers.Add(datatrigger2);

【讨论】:

    【解决方案2】:

    为 BusType 设置整数值 让说, 卧铺 = 1 非睡眠者 = 2

    只需在您的集合中为 BusTypeID 添加一个属性

        <Style.Triggers>
                <DataTrigger Binding="{Binding BusTypeID}" Value="1">
                        <Setter Property="Background" Value="Green"/>
                </DataTrigger>
                <DataTrigger Binding="{Binding BusTypeID}" Value="2">
                        <Setter Property="Background" Value="Blue"/>
                </DataTrigger>
    
        </Style.Triggers> </Style >
    

    【讨论】:

    • 请告诉我如何使用代码隐藏来实现这一点。
    猜你喜欢
    • 1970-01-01
    • 2011-01-21
    • 2015-06-06
    • 2023-03-31
    • 2019-12-10
    • 1970-01-01
    • 1970-01-01
    • 2011-06-09
    • 2013-10-17
    相关资源
    最近更新 更多