我希望将在运行时创建的ComboBox绑定到ViewModel上的属性。
我在这些方面尝试了一些东西
combobox.SetBinding(ComboBox.SelectedValueProperty,
new Binding("WCSettings.ViewModels.WinCAPSIniViewModel.selectedItem")
{
Source = combobox.SelectedValue,
Mode = BindingMode.OneWayToSource
});
绑定只需要单向(View - > ViewModel),因此值可以存储在数据库中。 'combobox'是正在创建的ComboBox的实例。
答案 0 :(得分:1)
绑定ComboBox的SelectedValue
属性,同时将绑定的Source
设置为相同的属性是没有意义的。
您需要拥有视图模型的实例并将其用作绑定源。除非您还设置了ComboBox的SelectedValuePath
属性,否则应绑定SelectedItem
属性。
WCSettings.ViewModels.WinCAPSIniViewModel viewModel = ...
combobox.SetBinding(ComboBox.SelectedItemProperty,
new Binding("selectedItem")
{
Source = viewModel ,
Mode = BindingMode.OneWayToSource
});
为了防止您忘记,selectedItem
需要成为WinCAPSIniViewModel类中的公共属性。