我有一个带有列表框的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>
感谢您的帮助!
答案 0 :(得分:1)
首先需要将包含ListBox的某些东西(Window,Grid等)的DataContext设置为包含Dictionary的类的实例。您可以在XAML或代码中执行此操作。然后:
<ListBox ItemsSource="{Binding MyDictionaryProperty}" DisplayMemberPath="Key"
SelectedValuePath="Value" SelectedValue="{Binding wheelRadius}"/>
只要wheelRadius的类型为int
且具有公共设置器,就会使用SelectedItem
的值属性(感谢SelectedValuePath
)并将其推送到SelectedValue
},这会将wheelRadius
属性设置为TwoWay Binding
(SelectedValue
,SelectedItem
和其他一些属性的默认值。