2011-02-28 45 views
3

这里设置的SelectedValue的组合框是我的XAML的一个片段:问题在XAML

<ComboBox x:Name="cbo1" Width="100" SelectedValue="200"> 
     <ComboBoxItem Name="n1">100</ComboBoxItem> 
     <ComboBoxItem Name="n2">200</ComboBoxItem> 
    </ComboBox> 

为什么不这项工作?我运行时未选中'200'。 理想情况下,我正在尝试执行SelectedValue =“{Binding MyValue}”。

回答

4

在这种情况下,选定的值来自ComboBoxItem类型,而不是您希望的整数或字符串。

那么你能做些什么呢?对于组合框存在一个属性,它定义了所选对象的哪个属性应该用作值,以及作为DisplayMember(可视化)的情况下,您必须将SelectedValuePath设置为“Content”。 (该200是你的情况ComboBoxItem的内容)

例如:

<ComboBox x:Name="cbo1" Width="100" SelectedValue="200" SelectedValuePath="Content"> 
    <ComboBoxItem Name="n1">100</ComboBoxItem> 
    <ComboBoxItem Name="n2">200</ComboBoxItem> 
</ComboBox> 
+0

美丽!作品和感谢的解释。 – DeeStackOverflow 2011-02-28 19:27:15

0
<ComboBox x:Name="cbo1" Width="100" > 
     <ComboBoxItem Name="n1">100</ComboBoxItem> 
     <ComboBoxItem Name="n2" IsSelected="True">200</ComboBoxItem> 
</ComboBox> 
+0

这并没有帮助,因为要选择的值是在运行时。如前所述,我实际上正在尝试执行SelectedValue = {Binding MyValue}。 – DeeStackOverflow 2011-02-28 19:19:10

+0

对不起 - 专注于选择正确的项目。 wonderfix的答案看起来不错。 – RQDQ 2011-02-28 19:30:11