Silverlight - how do I get the text of the selected item in a combobox

后端 未结 7 1160
臣服心动
臣服心动 2021-01-18 13:14

Easy one for you all...

I\'m new to Silverlight and really missing stuff like DataTables and things. What I\'m also currently struggling with is how to get the text

相关标签:
7条回答
  • 2021-01-18 13:16

    The selected item of your combo box is whatever type of item is currently holding. So if you set the binding to a collection of strings, then the selected item will be a string:

    string mySelectedValue = ((string)MyComboBox.SelectedItem);
    

    If it is a more complex object you will need to cast and use the expected object. If you have XAML using the list box item class, like:

    <ComboBox x:Name="MyComboBox">
        <ComboBox.Items>
            <ComboBoxItem>
                <TextBlock Text="Hello World"/>
            </ComboBoxItem>
        </ComboBox.Items>
    </ComboBox>
    

    Then you would access the selected item like this:

    string mySelectedValue = 
      ((TextBlock)((ComboBoxItem)MyComboBox.SelectedItem).Content).Text;
    
    0 讨论(0)
  • 2021-01-18 13:17
    ((ComboBoxItem)comboBox1.SelectedItem).Content.ToString()
    

    I got it worked by this statement.

    0 讨论(0)
  • 2021-01-18 13:21
    string txt=(comboboxID.SelectedItem as BindingClass).Text.ToString();
    
    string value=(comboboxID.SelectedItem as BindingClass).Value.ToString();
    
    
     public class BindingClass
     {
         public string Text
           {
             set;
              get;
          }
    
         public string Value
           {
             set;
              get;
          }
     }
    
    0 讨论(0)
  • 2021-01-18 13:25

    Right, the answer is to use myCombo.SelectionBoxItem.ToString()

    0 讨论(0)
  • 2021-01-18 13:29

    For a complex object, use reflection with the DisplayMemberPath property:

    var itemType = cbx.SelectedItem.GetType();
    var pi = itemType.GetProperty(cbx.DisplayMemberPath);
    var stringValue = pi.GetValue(cbx.SelectedItem, null).ToString();
    
    0 讨论(0)
  • 2021-01-18 13:36

    If you have a simple combobox for an array of strings, you can get the selected string using

    (string)e.AddedItems[0];
    

    Suppose I have a product list combo and I want to know the selected product name. So in the SelectionChanged Event I write the following code:

    private void productCombo_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
            {
                string product_type=(string)e.AddedItems[0];
            }
    
    0 讨论(0)
提交回复
热议问题