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