silverlight 前台绑定多个数值

Gomes 2013-12-12 09:39:54
在DateGrid里面需要对前台的控件显示值进行比较以后的展现,当 {Binding a} >{Binding b}的值得时候,控件字体为红色,否则为白色。
就是需要实现在ASP.NET中用reapter控件时的
<%# int.Pare(Eval("a").ToString())>int.Pare(Eval("b").ToString()) ? "Red":White %>这样的效果。
...全文
143 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
huangyezi 2013-12-15
  • 打赏
  • 举报
回复
二楼的方法是正解,只需要对C进行Converter 转换
wjq 2013-12-13
  • 打赏
  • 举报
回复
2楼的办法挺好了,其他办法不一定比2楼的好,比如自己写一个接受完整实体类然后转换颜色的converter
Gomes 2013-12-13
  • 打赏
  • 举报
回复
引用 6 楼 H81_Q 的回复:
做一个 Converter 转换器, 当获取值不一样时就给它绑定不一样的颜色
Converter 转换器只支持单值绑定转换,现在是需要两个值比较后返回一个,MultiValueConverter支持数值,但是效率很慢。
灵感源于生活 2013-12-13
  • 打赏
  • 举报
回复
做一个 Converter 转换器, 当获取值不一样时就给它绑定不一样的颜色
Gomes 2013-12-12
  • 打赏
  • 举报
回复
不要使用MultiValueConverter方法的绑定,尝试了之后发现效率很慢,很次更新值都需要等上三四秒钟才完成。
灬浪子灬 2013-12-12
  • 打赏
  • 举报
回复
引用 3 楼 sm357753 的回复:
 <data:DataGridTextColumn Header="编号" Binding="{Binding OneHour}" Width="50" Foreground="{Binding }"></data:DataGridTextColumn> <data:DataGridTextColumn Header="编号" Binding="{Binding TwoHour}" Width="50" Foreground="{Binding }"></data:DataGridTextColumn>
  <data:DataGridTextColumn Header="编号" Binding="{Binding ThreeHour}" Width="50" Foreground="{Binding }"></data:DataGridTextColumn> <data:DataGridTextColumn Header="编号" Binding="{Binding FourHour}" Width="50" Foreground="{Binding }"></data:DataGridTextColumn>
现在需要对 OneHour比对 HistoryOneHour,TwoHour比对HistroyTwoHour等等。。。。返回的值来绑定到Foregroup上。 那我 Foreground 里面应该怎么绑定,我需要每个小时的数值都比对的,不能去给原来的实体类给每个小时都加一个判断定义的吧? [quote=引用 2 楼 rui_china 的回复:] 可以在绑定前做处理,定义一个颜色在反悔数据的尸体类中处理,然后给颜色绑定你返回的颜色的值 public class Test { private int a; public int A { get { return a; } set { a = value; } } private int b; public int B { get { return b; } set { b = value; } } private Color c; public Color C { get { return c; } set { c = A > B ? c = Colors.Red : c = Colors.Transparent; } } } [quote=引用 楼主 sm357753 的回复:] 在DateGrid里面需要对前台的控件显示值进行比较以后的展现,当 {Binding a} >{Binding b}的值得时候,控件字体为红色,否则为白色。 就是需要实现在ASP.NET中用reapter控件时的 <%# int.Pare(Eval("a").ToString())>int.Pare(Eval("b").ToString()) ? "Red":White %>这样的效果。
[/quote][/quote] MultiValueConverter慢 我目前想到是种方法! Foreground="{Binding C} 返回的颜色的值; 要不你就在等等别人!看看有没有更好的处理方法;
Gomes 2013-12-12
  • 打赏
  • 举报
回复
 <data:DataGridTextColumn Header="编号" Binding="{Binding OneHour}" Width="50" Foreground="{Binding }"></data:DataGridTextColumn> <data:DataGridTextColumn Header="编号" Binding="{Binding TwoHour}" Width="50" Foreground="{Binding }"></data:DataGridTextColumn>
  <data:DataGridTextColumn Header="编号" Binding="{Binding ThreeHour}" Width="50" Foreground="{Binding }"></data:DataGridTextColumn> <data:DataGridTextColumn Header="编号" Binding="{Binding FourHour}" Width="50" Foreground="{Binding }"></data:DataGridTextColumn>
现在需要对 OneHour比对 HistoryOneHour,TwoHour比对HistroyTwoHour等等。。。。返回的值来绑定到Foregroup上。 那我 Foreground 里面应该怎么绑定,我需要每个小时的数值都比对的,不能去给原来的实体类给每个小时都加一个判断定义的吧?
引用 2 楼 rui_china 的回复:
可以在绑定前做处理,定义一个颜色在反悔数据的尸体类中处理,然后给颜色绑定你返回的颜色的值 public class Test { private int a; public int A { get { return a; } set { a = value; } } private int b; public int B { get { return b; } set { b = value; } } private Color c; public Color C { get { return c; } set { c = A > B ? c = Colors.Red : c = Colors.Transparent; } } } [quote=引用 楼主 sm357753 的回复:] 在DateGrid里面需要对前台的控件显示值进行比较以后的展现,当 {Binding a} >{Binding b}的值得时候,控件字体为红色,否则为白色。 就是需要实现在ASP.NET中用reapter控件时的 <%# int.Pare(Eval("a").ToString())>int.Pare(Eval("b").ToString()) ? "Red":White %>这样的效果。
[/quote]
灬浪子灬 2013-12-12
  • 打赏
  • 举报
回复
可以在绑定前做处理,定义一个颜色在反悔数据的尸体类中处理,然后给颜色绑定你返回的颜色的值 public class Test { private int a; public int A { get { return a; } set { a = value; } } private int b; public int B { get { return b; } set { b = value; } } private Color c; public Color C { get { return c; } set { c = A > B ? c = Colors.Red : c = Colors.Transparent; } } }
引用 楼主 sm357753 的回复:
在DateGrid里面需要对前台的控件显示值进行比较以后的展现,当 {Binding a} >{Binding b}的值得时候,控件字体为红色,否则为白色。 就是需要实现在ASP.NET中用reapter控件时的 <%# int.Pare(Eval("a").ToString())>int.Pare(Eval("b").ToString()) ? "Red":White %>这样的效果。

8,735

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧