绑定ComboBox SelectedItem为double

时间:2012-09-10 21:34:01

标签: c# silverlight data-binding combobox double

我的ComboBox的ItemsSource绑定到List<double> optionsSelectedItem绑定到属性double SelectedOption

如果options包含值0.0060F, 0.0075F, 0.0100FSelectedItem = 0.0060F,则ComboBox应该但不会反映这一点。相反,选择ComboBox会显示options列表项及其奇怪的十进制表示。是否有可能对类型为double的变量进行数据绑定,其表达方式不可预测?

代码

视图模型:

//Properties
public List<double> Options{get;set;}
public double SelectedOption{get;set;}

//Constructor
public ViewModel()
{
    Options =  new List<double>();
    Options.Add(0.0060F);
    Options.Add(0.0075F);
    Options.Add(0.0100F);

    SelectedOption = 0.0060F;
}

结合:

<ComboBox ItemsSource="{Binding Path=Options}" 
    SelectedItem="{Binding Path=SelectedOption, Mode=TwoWay}" />

ComboBox中显示的选项是:

  • 0.00600000005215406
  • 0.00749999983236194
  • 0.00999999977648258

1 个答案:

答案 0 :(得分:2)

也许您应该阅读浮点数:http://csharpindepth.com/Articles/General/FloatingPoint.aspx

这些值用于尽可能接近数字的真实表示。如果需要精确值,请使用System.Decimal