开发者

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

开发者 https://www.devze.com 2022-12-13 09:09 出处:网络
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 of my combobox\'s c

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 of my combobox's currently selected item. In winforms I would have done:

ComboBox myCombo = new ComboBox.......
string selected = myCombo.Text;

I'm struggling how to get this info out.


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;


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


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();


((ComboBoxItem)comboBox1.SelectedItem).Content.ToString()

I got it worked by this statement.


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;
      }
 }


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];
        }


myCombo.SelectedItem.Content

will return the content of the ComboBoxItem. This could be a TextBlock, etc. depending on what you have in there, and what you are using for an item template.

0

精彩评论

暂无评论...
验证码 换一张
取 消