在组合框中设置XAML中的默认值

时间:2014-01-09 15:00:38

标签: c# wpf xaml

我正在尝试为组合框设置默认值。我有创建代码表的脚本,所以编写这样的代码不是一个选项:

<StackPanel>
<ComboBox SelectedValue="CA">
    <ComboBoxItem Tag="CO">Colorado</ComboBoxItem>
    <ComboBoxItem Tag="CA">California</ComboBoxItem>
    <ComboBoxItem Tag="NM">New Mexico</ComboBoxItem>
</ComboBox>
</StackPanel>

相反,我在XAML中有一些代码:

 <StackPanel HorizontalAlignment="Left" Margin="10,5,0,0" Name="PersonStackPanel" Height="60">
            <Label VerticalContentAlignment="Top" FontWeight="Normal" Height="28" HorizontalAlignment="Left">Person</Label>
            <ComboBox Name="PersonComboBox"  Width="312" Props.CodeProvider="MASTCODE.TYPE.ARRA" DisplayMemberPath="NAME" Tag="AA" IsSelected="True" SelectedValuePath="CODE" SelectedItem="{Binding Path=PERSON}"/>
 <StackPanel>

我认为Tag =“AA”IsSelected =“True”会起作用,但事实并非如此。

4 个答案:

答案 0 :(得分:15)

组合框中显示的任何值都必须作为选择存在。

尝试:

<ComboBox SelectedIndex="0"/>    

修改:添加引文

答案 1 :(得分:2)

您正在使用

SelectedValuePath="CODE"

所以在这种情况下尝试设置 SelectedValue 而不是 SelectedItem

答案 2 :(得分:1)

在ViewModel中将Person设置为适当的值(如果你想要默认项,可能是构造函数)。

Person = //some object 

并将Binding更改为

SelectedItem="{Binding Path=PERSON, Mode=TwoWay}"

答案 3 :(得分:0)

谢谢你们,我想这会做:

    <ComboBox Name="PersonComboBox"  Width="312" SelectedItem="{Binding Path=PERSON}" SelectedIndex="0" >
                <ComboBoxItem Tag="AA">Adam</ComboBoxItem>
            </ComboBox>

我认为我感到困惑的是,因为我有一个创建组合框项目的脚本,所以我不需要在XAML中创建它。但只要我能将这些数据保存到“人员”栏目中,我就很擅长。