10

What is the correct syntax to select a combobox item with value (not index) in pure XAML?

Doesn't work:

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

Doesn't work:

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

Even this doesn't work:

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

This doesn't work:

<StackPanel>
    <ComboBox SelectedItem="CA">
        <ComboBoxItem Tag="CO">Colorado</ComboBoxItem>
        <ComboBoxItem Tag="CA">California</ComboBoxItem>
        <ComboBoxItem Tag="NM">New Mexico</ComboBoxItem>
    </ComboBox>
</StackPanel>
Dave Clemmer
  • 3,741
  • 12
  • 49
  • 72
Edward Tanguay
  • 189,012
  • 314
  • 712
  • 1,047

4 Answers4

19

I think this should work. Have a try.

<StackPanel>
    <ComboBox>
        <ComboBoxItem Tag="CO">Colorado</ComboBoxItem>
        <ComboBoxItem Tag="CA" IsSelected="True">California</ComboBoxItem>
        <ComboBoxItem Tag="NM">New Mexico</ComboBoxItem>
    </ComboBox>
</StackPanel>
martin
  • 2,957
  • 3
  • 25
  • 46
5
<ComboBox SelectedValuePath="Content" SelectedValue="{Binding Source="...", Path="..."}">
   <ComboBoxItem Content="..." isSelected="true"/>
   <ComboBoxItem Content="..." />
   <ComboBoxItem Content="..." />
</ComboBox>

It should work with content, tag... or any other property you'd like to bind.

mehdi lotfi
  • 11,194
  • 18
  • 82
  • 128
Dwsgg
  • 79
  • 1
  • 1
2
<StackPanel>
    <ComboBox AllowDrop="True">
        <ComboBoxItem Tag="CO">Colorado</ComboBoxItem>
        <ComboBoxItem Tag="CA" IsSelected="True">California</ComboBoxItem>
        <ComboBoxItem Tag="NM">New Mexico</ComboBoxItem>
    </ComboBox>
</StackPanel>

You need to set AllowDrop="True" for the combobox and isselected for the item.

1

The ComboBox element has a SelectedItem property, maybe this is the one you need.

Konamiman
  • 49,681
  • 17
  • 108
  • 138