Как привязать свойство SelectedValue ComboBox к строковому свойству? - PullRequest
1 голос
/ 13 июля 2011

У меня есть элемент управления DataForm из Silverlight Toolkit, и в нем у меня есть поле ComboBox.Выбранное значение поля со списком должно быть привязано к одному из свойств моего класса IEditable, чтобы при выборе, например, «HS», значением моего свойства становилось HS. Однако привязка изменяет значение моего свойства на System.Windows.Controls.ComboBoxItem.Результат будет таким же, если я вместо этого использую свойство SelectedItem, как было предложено в некоторых других подобных вопросах по stackoverflow.Как я должен связать свойство SelectedValue ComboBox с моим другим свойством?Вот мой XAML (ItemSource установлен в конструкторе страницы в коде C #):

 <toolkit:DataForm  
                    Name="dataForm" 
                    ItemsSource="{Binding}"  
                    AutoGenerateFields="False"
                    Margin="150, 0, 150, 0"
                    CommitButtonContent="Next"
                    CancelButtonContent="Clear"
                    CommandButtonsVisibility="Commit, Cancel">
                    <StackPanel>
                         <toolkit:DataField LabelPosition="Top">
                            <ComboBox SelectedValue="{Binding Degree, Mode=TwoWay}">
                                <ComboBoxItem Content="H.S." />
                                <ComboBoxItem Content="B.S./B.A." />
                                <ComboBoxItem Content="M.S./M.A." />
                                <ComboBoxItem Content="Ph. D." />
                                <ComboBoxItem Content="M.D." />
                            </ComboBox>
                        </toolkit:DataField>
                    </StackPanel>
</toolkit:DataForm>

Заранее спасибо.

1 Ответ

4 голосов
/ 13 июля 2011

Проверьте эту статью для хорошего объяснения всех свойств элемента управления ComboBox: http://johnpapa.net/binding-to-silverlight-combobox-and-using-selectedvalue-selectedvaluepath-and-displaymemberpath

Попробуйте установить для свойства SelectedValuePath содержимое, например:

<ComboBox SelectedValue="{Binding Degree, Mode=TwoWay}" SelectedValuePath="Content">     
 <ComboBoxItem Content="H.S." />
 <ComboBoxItem Content="B.S./B.A." />
 <ComboBoxItem Content="M.S./M.A." />  
 <ComboBoxItem Content="Ph. D." /> 
 <ComboBoxItem Content="M.D." />
</ComboBox> 
...