代码隐藏中的 ComboBox SelectedValuePath 问题
Issue with ComboBox SelectedValuePath in code behind
我正在尝试在 WPF 应用程序中将 Dictionary
绑定到我的 ComboBox
。
SortedDictionary<string, string> result = new SortedDictionary<string, string>();
((ComboBox)frameWorkElement).ItemsSource = result;
((ComboBox)frameWorkElement).DisplayMemberPath = "Value";
((ComboBox)frameWorkElement).SelectedValuePath = "Key";
((ComboBox)frameWorkElement).MinWidth = 200;
frameWorkElement.Name = "ListOfValues";
var binding = new Binding("ComboBoxSourceValue")
{
UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged
};
binding.Mode = BindingMode.TwoWay;
binding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
frameWorkElement.SetBinding(ComboBox.TextProperty, (BindingBase)binding);
在 UI 方面,值正确绑定。但是在提交操作中,我只能看到值 (Display value
) 只有选定值的 Key
.
frameWorkElement.SetBinding(ComboBox.SelectedValueProperty, binding);
应该可以工作,前提是 ComboBox
的 DataContext
或父元素设置为具有 string
源 属性 命名为 "ComboBoxSourceValue".
SelectedValuePath
指的是SortedDictionary
中的KeyValuePair<TKey, TValue>
的属性。您仍然需要将该值绑定到您的来源 属性.
我正在尝试在 WPF 应用程序中将 Dictionary
绑定到我的 ComboBox
。
SortedDictionary<string, string> result = new SortedDictionary<string, string>();
((ComboBox)frameWorkElement).ItemsSource = result;
((ComboBox)frameWorkElement).DisplayMemberPath = "Value";
((ComboBox)frameWorkElement).SelectedValuePath = "Key";
((ComboBox)frameWorkElement).MinWidth = 200;
frameWorkElement.Name = "ListOfValues";
var binding = new Binding("ComboBoxSourceValue")
{
UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged
};
binding.Mode = BindingMode.TwoWay;
binding.UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged;
frameWorkElement.SetBinding(ComboBox.TextProperty, (BindingBase)binding);
在 UI 方面,值正确绑定。但是在提交操作中,我只能看到值 (Display value
) 只有选定值的 Key
.
frameWorkElement.SetBinding(ComboBox.SelectedValueProperty, binding);
应该可以工作,前提是 ComboBox
的 DataContext
或父元素设置为具有 string
源 属性 命名为 "ComboBoxSourceValue".
SelectedValuePath
指的是SortedDictionary
中的KeyValuePair<TKey, TValue>
的属性。您仍然需要将该值绑定到您的来源 属性.