Ответ 1
<Combobox ItemsSource="{Binding Property}" SelectedItem="{Binding SimpleStringProperty, Mode=TwoWay}" Text="Select Option" />
Это непроверено, но оно должно быть по крайней мере близко к тому, что вам нужно.
У меня есть два свойства, один из которых представляет собой список строк, а другой - только строку.
private List<String> _property;
public List<String> Property
get
{
return new List<string>(){"string1", "string2"};
}
set{_property = value
}
public String SimpleStringProperty{get;set;}
У меня также есть Combobox, определенный в XAML как таковой
<Combobox ItemsSource="{Binding Property , Mode="TwoWay"}" Text="Select Option" />
Теперь combobox правильно отображает две опции: "string1" и "string2"
Когда пользователь выбирает тот или другой, я хочу установить SimpleStringProperty
с этим значением. Тем не менее, "значение" im, возвращающееся из combobox через двухстороннюю привязку, не является выбранным, а List<String>
. Как я могу сделать это правильно? Я новичок в wpf, поэтому, пожалуйста, извините дилетантство.
<Combobox ItemsSource="{Binding Property}" SelectedItem="{Binding SimpleStringProperty, Mode=TwoWay}" Text="Select Option" />
Это непроверено, но оно должно быть по крайней мере близко к тому, что вам нужно.
Вам необходимо привязать свойство String с помощью свойства SelectedItem
combobox
.
<Combobox ItemsSource="{Binding Property}"
SelectedItem="{Binding SimpleStringProperty}"
IsSynchronizedWithCurrentItem="True"
Text="Select Option" />
Что помогло мне:
Таким образом, в конце лучший способ, если источник
List<string>
Пример:
<ComboBox
IsSynchronizedWithCurrentItem="True"
ItemsSource="{Binding SomeBindingPropertyList}"
SelectedItem="{Binding SomeBindingPropertySelectedCurrently,
Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
Дополнительная информация