У меня есть один ObservableCollection<M> fooBar {get;set;}
. Класс M.cs
выглядит следующим образом:DropDown привязывается к именам свойств; основанный на первом наборе второй привязки DropDown
public class M{
private int _ID;
public int ID {
get {return this._ID;}
set {this._ID = value;}
}
private string _number;
public int Number {
get {return this._number;}
set {this._number = value;}
}
private string _power;
public int Power {
get {return this._power;}
set {this._power = value;}
}
/*
...
*/
}
Теперь я хочу, чтобы связать имена этих 3 propertys к ComboBox
. Я не хочу делать это так:
<ComboBox>
<ComboBoxItem>ID</ComboBoxItem>
<ComboBoxItem>Number</ComboBoxItem>
<ComboBoxItem>Power</ComboBoxItem>
</ComboBox>
Есть ли более удобный способ?
Основываясь на выборе первого ComboBox
Я хочу заполнить второй ComboBox
. В качестве примера я выбрал в первом ComboBox
свойства Number
то второй ComboBox
должен выглядеть следующим образом
<ComboBox
SelectedValue="{Binding ???}"
ItemsSource="{Binding fooBar}"
SelectedValuePath="Number"
DisplayMemberPath="Number"
/>
Может быть кто-то из вас может помочь мне, потому что я понятия не имею, как подключить оба выпадающие списки.
Спасибо за ответ @sondergard! У меня есть одна проблема. Я не хочу показывать все свойства, и я хочу перевести их на немецкий язык. Как я могу это сделать? – MyNewName
Локализация может быть выполнена с использованием словаря, где часть значения является локализованным текстом, и с выбранным значениемvaluepath/displaymemberpath указывают на ключ/значение соответственно. Я обновил образец с моим лучшим предположением в соответствии с моим воспоминанием о нем (это было, что, 15 лет?) :) Конечно, вы можете использовать строки из ресурса, если хотите. – sondergard
спасибо большое! Теперь это работает. Никогда не использовался 'Словарь' для. ^^ – MyNewName