0

ユーザーが標準的な自転車のタイヤサイズのリストから選択できるリストボックスを備えた動作中の HTML フォームがあります。各サイズは内部的に何らかの数値にマップされ、データ ソースがディクショナリ (キーと値のペアのマップ) になります。

JavaScript の実装は次のとおりです。WPF でデータ バインディングを使用して同じ動作をさせたいと思います (ドメイン モデル クラス内で辞書/列挙を定義します)。

<select name="tiresize" id="tiresize"
    onchange="calcula();" style="width: 100px">
    <option value="305">26 X 1.0 (559 mm)</option>
    <option value="311">26 x 1 (650C)</option>
    <option value="312">26 X 1.5</option>
    <option value="324">26 X 1.9</option>
    <option value="330">26 X 1 3/8 (590 mm)</option>
    <option value="340">27 X 1</option>
    <option value="342">27 X 1 1/8</option>
    <option value="343">27 X 1 1/4</option>
    <option value="345">27 X 1 3/8</option>
    <option value="330">26 X 2.125</option>
    <option value="332">700 x 21</option>
    <option value="334" selected="selected">700 x 23</option>
    <option value="335">700 x 25</option>
    <option value="336">700 x 28</option>
    <option value="342">700 x 32</option>
    <option value="345">700 x 35</option>
    <option value="347">700 x 38</option>
    <option value="354">700 x 44</option>
    <option value="365">700 x 50</option>
    <option value="370">700 x 56</option>
</select>

助けてくれてありがとう!

4

1 に答える 1

1

最初に、ListBox を含む何か (ウィンドウ、グリッドなど) の DataContext を Dictionary を含むクラスのインスタンスに設定する必要があります。これは、XAML またはコードで行うことができます。それで:

<ListBox ItemsSource="{Binding MyDictionaryProperty}" DisplayMemberPath="Key"
         SelectedValuePath="Value" SelectedValue="{Binding wheelRadius}"/>

wheelRadius がタイプであり、パブリック セッターを持っている限り、これは( のおかげで)intの Value プロパティを受け取り、それを にプッシュします。SelectedItemSelectedValuePathSelectedValuewheelRadiusTwoWay BindingSelectedValueSelectedItem

于 2013-01-30T18:38:46.083 に答える