0

私の ComboBoxItemsSourceは a にバインドされてList<double> optionsおり、SelectedItemは property にバインドされていますdouble SelectedOption

値とoptionsが含まれている場合、ComboBox はこれを反映する必要がありますが、反映しません。代わりに、ComboBox を選択すると、奇妙な 10 進数表現でリスト項目が表示されます。予測不可能な表現を持つ型の変数でデータバインディングを行うことさえ可能ですか?0.0060F, 0.0075F, 0.0100FSelectedItem = 0.0060Foptionsdouble

コード

ビューモデル:

//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
4

1 に答える 1

2

たぶん、浮動小数点とは何かを読んでおくべきでしょう: http://csharpindepth.com/Articles/General/FloatingPoint.aspx

これらの値は、数値の現実の表現にできるだけ近いものを提供するために使用されます。正確な値が必要な場合は、System.Decimal を使用します

于 2012-09-11T12:49:04.997 に答える