1

バインドされていない Combobox があり、実行時にその値を設定したいと考えています。私はたくさん試しましたが、それを達成することはできません。コードは次のとおりです。

<ComboBox  Background="#FFB7B39D" Grid.Row="1" Height="23" 
HorizontalAlignment="Right" Margin="0,26,136,0" 
Name="cboWellDiameter" VerticalAlignment="Top" Width="120">

     <ComboBoxItem Content="meter" IsSelected="True" />
         <ComboBoxItem Content="centimeter" />
</ComboBox>

コードでは、私は試しています:

//VALUE of  sp.wellborediameterField_unit is centimeter
// Gives -1
int index = cboWellDiameter.Items.IndexOf(sp.wellborediameterField_unit);

Console.WriteLine("Index of well bore dia unit = " + index.ToString());  
cboWellDiameter.SelectedIndex = index;

// cboWellDiameter.SelectedItem = sp.wellborediameterField_unit;
// cboWellDiameter.SelectedValue = sp.wellborediameterField_unit;

SelectedItem と selectedValue は影響しません。Items でさえ見つからないのはなぜですか? 設定方法を教えてください。

プログラムで設定する、バインドされていないコンボとバインドされたコンボをいくつか用意してください。

4

1 に答える 1

7

問題は、アイテムが文字列ではなく ComboBoxItems であることです。したがって、2 つのオプションがあります。1 つは、コンボ ボックス項目として文字列を使用することです (これにより、SelectedItem / SelectedValue = "meter" または "centimeter" を設定できます)。

<ComboBox xmlns:clr="clr-namespace:System;assembly=mscorlib">
     <clr:String>meter</clr:String>
     <clr:String>centimeter</clr:String>
</ComboBox>

またはSelectedItem2 つ、適切な を検索して設定しますComboBoxItem

cboWellDiameter.SelectedItem = cboWellDiameter.Items.OfType<ComboBoxItem>()
    .FirstOrDefault(item => item.Content as string == cosp.wellborediameterField_unit);
于 2013-08-24T08:25:13.783 に答える