如何在这种情况下找到ComboBox值?

时间:2016-10-01 01:29:52

标签: c# wpf combobox binding

我有以下XAML代码:

<ComboBox Name="cmbColors">
  <ComboBox.ItemTemplate>
      <DataTemplate>
         <StackPanel Orientation="Horizontal">
             <Rectangle Fill="{Binding Name}" Width="16" Height="16" Margin="0,2,5,2" />
             <TextBlock Text="{Binding Name}" />
          </StackPanel>
       </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>

和.cs代码:

public ComboBoxDataBindingSample()
{
     InitializeComponent();
     cmbColors.ItemsSource = typeof(Colors).GetProperties();
}

有什么方法可以将当前的组合框值显示为“黑色”而不使用for循环来查找它的索引?

3 个答案:

答案 0 :(得分:1)

这很简单:

cmbColors.SelectedItem = "Black" ;

答案 1 :(得分:0)

您可以使用以下代码找到programmaticaly。

int index = comboBox1.Items.IndexOf(a);

要获取项目本身,请写下:

comboBox1.Items[index];

答案 2 :(得分:0)

这将通过代码

完成
cmbColors.SelectedValue = "Black";