WPF combobox пуст при связывании enum - PullRequest
0 голосов
/ 22 мая 2019

Я пытаюсь связать значения перечисления с полем со списком, но поле со списком остается пустым без вариантов выбора.

Это определение поля со списком xaml:

<ComboBox Grid.Row="2" Grid.Column="1" ItemsSource="{Binding Path=SkillItemSource}" SelectedItem="{Binding Path=neededSkill, Mode=TwoWay}" SelectedIndex="0" Margin="5" MinWidth="100"></ComboBox>

И это источник элементов и выбранный элемент, которые определены в cs окна:

public Skill neededSkill = Skill.FirstSkill;

public string[] SkillItemSource
    {
        get
        {
            return Enum.GetNames(typeof(Skill));
        }
    }

Чего не хватает для появления значений в выпадающем списке?

1 Ответ

1 голос
/ 22 мая 2019

Чего не хватает для появления значений в выпадающем списке?

Вам необходимо установить DataContext ComboBox или родительский элемент для экземпляракласс, в котором определено свойство SkillItemSource.Если свойство определено в коде, вы можете просто установить DataContext для самого представления: this.DataContext = this;

Кроме того, вы не можете смешивать типы.Если ItemsSource привязан к IEnumerable<string>, свойство SelectedItem должно быть привязано к свойству string.

Также обратите внимание, что neededSkill должно быть определено как общедоступное свойство , чтобы вы могли связываться с ним.

Попробуйте это:

public Skill neededSkill { get; set; } = Skill.FirstSkill;

public IEnumerable<Skill> SkillItemSource { get; } = Enum.GetValues(typeof(Skill)).Cast<Skill>();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...