Обязательный словарькомбинировать в SL3 - PullRequest
1 голос
/ 25 января 2011

Я пытаюсь сделать следующее.У меня есть класс:

public class TextField {
    public string TextType { get; set; }
}

в моем представлении. Я создал список:

public TextFieldEditControl()
    {
        InitializeComponent();

        Dictionary<string, string> lst = new Dictionary<string, string>();
        lst.Add("SingleLine", "Single line");
        lst.Add("MultiLine", "Multi-line");
        lst.Add("RichText", "Rich text");
        cmbTextType.ItemsSource = lst;
    }

в моем XAML:когда я проверяю значение свойства TextType, он возвращает строку, подобную этой: «[SingleLine, Single line]» вместо только Key.Где я могу установить, чтобы он возвращал только ключ для пары ключ / значение?

Ответы [ 2 ]

3 голосов
/ 25 января 2011

Привязать к свойству SelectedValue вместо SelectedItem и указать SelectedValuePath="Key".

<ComboBox x:Name="cmbTextType" SelectedValuePath="Key" DisplayMemberPath="Value"
   SelectionChanged="cmbTextType_SelectionChanged"
   SelectedValue="{Binding Path=TextType, Mode=TwoWay}" /> 
2 голосов
/ 25 января 2011

В заголовке вы указали Silverlight 3, который, к сожалению, не имел свойств SelectedValue и SelectedValuePath, о которых упоминал Энтони.Это означает, что вам нужно сделать неприятный обходной путь, чтобы заставить его работать.Я обсуждаю это здесь, в этой статье моей эры Silverlight 2, в разделе под названием «Кошмар ComboBox»: http://www.silverlightshow.net/items/Building-a-Silverlight-Line-Of-Business-Application-Part-5.aspx. Это была боль в Silverlight 2 и не была исправлена ​​до Silverlight 4.

Надеюсь, это поможет ...

Крис

...