Чтобы достичь того, чего вы хотите, вы должны быть уверены, что ваш ViewModel Удерживает оба, KeyCollection и словарь. Вот моя интерпретация:
Предположим, у вас есть эта ViewModel:
public class DictVm
{
public Dictionary<string, string> MainDictionary { get; set; }
public ObservableCollection<string> MyKeyCollection{ get; set; }
public string SelectedKey{ get; set; }
private string _selectedDictValue;
public string SelectedDictValue {
get {
if (MainDictionary.TryGetValue(SelectedKey, _selectedDictValue))
return _selectedDictValue;
return string.Empty;
}
set { _selectedDictValue = value; } }
}
Вот ваш MainWindow застройщик:
private DictVm vm;
public MainWindow()
{
InitializeComponent();
vm = new DictVm();
DataContext = vm;
}
Вот как я бы изменить XAML:
<ComboBox x:Name="MyCombo" ItemsSource="{Binding MyKeyCollection}" SelectedValue="{Binding SelectedKey}"/>
<TextBox Text="{Binding SelectedDictValue}"/>