首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在ListBox中设置所选对象的其他属性

在ListBox中设置所选对象的其他属性
EN

Stack Overflow用户
提问于 2011-01-31 04:36:55
回答 1查看 89关注 0票数 0

例如,我通过绑定与我的员工创建了一个ListBox。

我想给所有收入超过10,000美元的员工上色。

谢谢

EN

回答 1

Stack Overflow用户

发布于 2011-01-31 07:04:37

最直接的方法是在Employee中实现一个返回字符串值的属性,然后在样式的数据触发器中测试字符串值。例如:

代码语言:javascript
运行
复制
public string SalaryRange
{
   get
   {
      if (salary <= LowRange)
      {
         return "Low";
      }
      if (salary <= MiddleRange)
      {
         return "Middle";
      }
      return "High";
   }
}

然后,在XAML中,实现一种使用数据触发器的样式,例如:

代码语言:javascript
运行
复制
<Style TargetType = "ListBoxItem">
   <Style.Triggers>
      <DataTrigger Binding="{SalaryRange}" Value="Low">
         <Setter Property="Foreground" Value="AliceBlue"/>
      </DataTrigger>
      <DataTrigger Binding="{SalaryRange}" Value="Middle">
         <Setter Property="Foreground" Value="Fucschia"/>
      </DataTrigger>
      <DataTrigger Binding="{SalaryRange}" Value="Middle">
         <Setter Property="Foreground" Value="Goldenrod"/>
      </DataTrigger>
   </Style.Triggers>
</Style>

许多人了解了值转换器,并完全沉迷于将它们用于这类事情的想法。但是如果您使用的是MVVM (您应该使用MVVM),那么上面的代码就清晰多了:属性做什么很清楚,样式做什么也很清楚,测试也很容易,而且没有第三段代码隐藏在一个单独的文件中来完成所有的转换。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4845370

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档