C1NumericBox用于显示数值类型数据,可以设置显示的数值范围,用于控制用户输入行为。在绑定数据源时,默认情况下,数值如果 null,C1NumericBox会自动转换为 0,那么如何实现当数值为 null 时,C1NumericBox中的文本也为空呢?
本篇博文将记录如何通过实现 IValueConverter 来实现这个功能。
下面分布讲解:
1.这里设置一个简单的数据源:
public class Student
{
public object Score { get; set; }
}
2.实现 IValueConverter 接口,在 Convert 方法中判断传入值,如果是 null 则返回 double.NaN:
public class NumericBoxConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value == null)
return double.NaN;
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value;
}
}
3.设置 Converter double.NaN 给 C1NumericBox ,这里需要定义 Binding,并且设置 AllowNull 属性为 true :
Binding binding = new Binding();
binding.Source = st1;
binding.Path = new PropertyPath("Score");
binding.Converter = new NumericBoxConverter();
c1numberic1.AllowNull = true;
c1numberic1.SetBinding(C1.Silverlight.C1NumericBox.ValueProperty, binding);
效果图:
Demo 下载:
VS2013+Silverlight 5.0 + Studio for Silverlight 2013V3 + C#
ComponentOne Enterprise | 下载试用
ComponentOne 是一套专注于企业 .NET开发、支持 .NET Core 平台,并完美集成于 Visual Studio 的第三方控件集,包含 300 多种 .NET开发控件,提供表格数据管理、数据可视化、报表和文档、日程安排、输入和编辑、导航和布局、系统提升工具等七大功能,被誉为“.NET开发的‘瑞士军刀’”。
ComponentOne 为您提供专业的产品咨询服务,并由技术支持工程师为您1对1解答。>> 发帖提问
葡萄城热门产品


