Problem in DataBinding an Enum using dictionary approach to a combobox in WPF.

Posted by Ashish Ashu on Stack Overflow See other posts from Stack Overflow or by Ashish Ashu
Published on 2010-04-12T11:13:29Z Indexed on 2010/04/21 17:13 UTC
Read the original article Hit count: 190

Filed under:
|
|

I have a Dictionary which is binded to a combobox. I have used dictionary to provide spaces in enum.

public enum Option {Enter_Value, Select_Value};

Dictionary<Option,string> Options;

    <ComboBox                                        
        x:Name="optionComboBox"
        SelectionChanged="optionComboBox_SelectionChanged"
        SelectedValuePath="Key"
        DisplayMemberPath="Value"
        SelectedItem="{Binding Path = SelectedOption}"
        ItemsSource="{Binding Path = Options}" />

This works fine.

My queries:

1. I am not able to set the initial value to a combo box. In above XAML snippet the line

SelectedItem="{Binding Path = SelectedOption}"

is not working. I have declared SelectOption in my viewmodel. This is of type string and I have intialized this string value in my view model as below:

SelectedOption = Options[Options.Enter_Value].ToString();

2. The combobox is binded to datadictionary which have two options first is "Enter_value" and second is "Select_value" which is actually Option enum.

Based on the Option enum value I want to perform different action.

For example

if option is equal to option.Enter_value then

Combo box becomes editable and user can enter the numeric value in it.

if option is equal to option.Select_value value then

the value comes from the database and the combo box becomes read only and shows the fetched value from the database.

Please Help!!

© Stack Overflow or respective owner

Related posts about wpf

Related posts about wpf-binding