wpf在绑定到字典时以编程方式设置组合框所选项

时间:2012-10-12 13:27:15

标签: c# wpf dictionary combobox

我有一个绑定做词典的组合框

Dictionary<String, myClass> boxItems;

组合框具有以下dataTemplate:

<DataTemplate>
    <TextBlock Text="{Binding Path=Key}"></TextBlock>
</DataTemplate>

这适用于加载值和获取所选值,但是我无法弄清楚如何从代码隐藏中设置所选值。

任何指针?

我已经尝试将selectedItem和selectedValue设置为Key(我知道它在字典中),但是当我加载页面时,组合框没有选择任何内容。

2 个答案:

答案 0 :(得分:2)

将此添加到您的ComboBox

<ComboBox SelectedItem="{Binding SelectedBoxItem}"/>

在实现INotifyPropertyChanged的类中使用它:

private myClass _selectedBoxItem;
public myClass SelectedBoxItem
{
    get { return _selectedBoxItem; }
    set
    {
        _selectedBoxItem = value;
        OnPropertyChanged("SelectedBoxItem");
    }
}

答案 1 :(得分:1)

您需要使用要选择的键创建KeyValuePair。

您可以这样做:

 myCombo.SelectedItem = new KeyValuePair<string, int>("myKey", boxItems["myKey"]);