求助:有三个依赖属性A 、B、 C通过属性A来选择UI控件绑定的是属性B 还是 C 。

zmidl 2016-01-13 05:21:19
我有三个依赖属性分别是
SolidColorBrush类型的A属性 默认值Colors.White
SolidColorBrush类型的B属性 默认值Colors.Black
Int类型的C属性 默认值是0

然后UI上有个矩形控件
<Rectangle x:Name="Rectangle1" Value="{Path=C}" Fill="{Path=B}"/>

我想通过这个C 数值来选择Fill绑定的颜色是A属性的白色 还是B属性的黑色
if(C>=10)
{
Rectangle1.Fill绑定到A
}
else
{
Rectangle1.Fill绑定到B
}
像这样的需求我这个C属性如何写?C属性的判断条件封装在哪里呢?
...全文
107 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
正怒月神 2016-01-14
  • 打赏
  • 举报
回复
我说的是 前台绑定事件,不是前台页面。 还有,昨天说错了。 是bll层创建Get()方法,方法名而已,我就是写个例子随便取个名。
zmidl 2016-01-14
  • 打赏
  • 举报
回复
引用 4 楼 hanjun0612 的回复:
我说的是 前台绑定事件,不是前台页面。 还有,昨天说错了。 是bll层创建Get()方法,方法名而已,我就是写个例子随便取个名。
估计这样的连带关系用依赖属性解决不了的了,可能是要定义事件来完成了。
zmidl 2016-01-13
  • 打赏
  • 举报
回复
引用 1 楼 hanjun0612 的回复:
dal层,创建方法 public SolidColorBrush Get() { if(C>=10) { return A; } else { return B; } } 前台绑定事件 SolidColorBrush s=Get(); Rectangle1.Fill(s);
你都用cs代码了 这哪里是前台啊 我是想在设计器里添加一个自定义控件时 <MyUserControl:UserControl A="Blue" B="Black" C=30/> 然后设计器里就可以看到 蓝色 的效果
zmidl 2016-01-13
  • 打赏
  • 举报
回复
引用 1 楼 hanjun0612 的回复:
dal层,创建方法 public SolidColorBrush Get() { if(C>=10) { return A; } else { return B; } } 前台绑定事件 SolidColorBrush s=Get(); Rectangle1.Fill(s);
当然Get 是访问器 是写在CS后台的
正怒月神 2016-01-13
  • 打赏
  • 举报
回复
dal层,创建方法 public SolidColorBrush Get() { if(C>=10) { return A; } else { return B; } } 前台绑定事件 SolidColorBrush s=Get(); Rectangle1.Fill(s);

110,567

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

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