Silverlight三态复选框数据绑定到对象属性计算值
因此,我有一个小问题,使这项工作:Silverlight三态复选框数据绑定到对象属性计算值,silverlight,data-binding,binding,checkbox,Silverlight,Data Binding,Binding,Checkbox,因此,我有一个小问题,使这项工作: 我有一个silverlight客户端应用程序,它具有自定义的usercontrol和双向绑定的三态复选框 用户更改复选框值后,属性的基础函数将值转换为整数: -1 nothing 0 false 1 true 用户从对话框保存数据后,所有数据(复杂对象)都将被序列化并发送到webservice并存储在SQL db中 当客户机请求从webservice返回已保存的数据时,它会返回该对象 当我尝试将返回的反序列化对象(EA)绑定回复选框时
-1 nothing
0 false
1 true
With cC
Dim b As New Binding("AllowedTo.Create")
b.Source = EA
b.Mode = BindingMode.TwoWay
.SetBinding(CheckBox.IsCheckedProperty, b)
End With
对不起,我的英语不是我的母语,因为这种技术对复选框来说是很自然的,我建议创建一个自定义控件来处理该布尔值的3种不同状态。不要使用整数,使用一个可为空的Bool(Bool?)。双向绑定工作正常,它可以转换:
- 选中==真
- 未选中==错误
- 不确定==null
如果您的数据库已设置,但无法更改,请编写一个转换器,将整数转换为可为null的布尔值以进行绑定,时间不应超过2分钟。我没有提到,我已经有属性“AllowedTo.Create”,其类型为nullable(布尔值)。它从该整数属性来回转换该值。但当它什么也不返回时,复选框应该显示为不确定,但它只是停留在未检查状态。如果我的属性返回true或false,那么它可以工作1)属性不是转换器。。。使用转换器在绑定时转换值。2)它不能返回“NOTHING”,正如您所说,它可以返回值或抛出表达式,值可以为null,但它不是NOTHING 3)我非常确定绑定到nullable bools 2 way的三态复选框在Silverlight中工作,因为我正在开发需要它的解决方案。也许您使用的是一个相当旧的SL版本?如果我没记错的话,当我在SL4.4中开发这个项目时,如果它仍然不起作用,那么你的代码中肯定还有另一个错误,我无法通过这种方式帮助你,发布你的复选框、转换器和它绑定的属性的XAML,然后我会查看它并帮助你找出问题所在。