Как отобразить выбор ComboBox со списком, извлеченным из базы данных в WPF - PullRequest
0 голосов
/ 18 марта 2020

У меня есть ComboBox, который ItemSource привязан к списку ESTADO, сущности в моем проекте. ComboBox выглядит следующим образом:

<ComboBox Style="{StaticResource ComboBoxStyle}" Visibility="{Binding EstadoComboBox}" Name="CatalogoEstados" DisplayMemberPath="NOMBRE" SelectedValuePath="NOMBRE" SelectedValue="{Binding Estado}" ItemsSource="{Binding Estados}">
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="SelectionChanged">
            <i:InvokeCommandAction Command="{Binding SeleccionarEstadoCommand}" CommandParameter="{Binding ElementName=CatalogoEstados, Path=SelectedItem.ID}" />
        </i:EventTrigger>
    </i:Interaction.Triggers>
</ComboBox>

Когда я выбираю элемент в ComboBox, свойство NOMBRE объекта ESTADO, являющегося строкой, присваивается переменной типа string с именем Estado.

Иногда мне нужно, чтобы переменная Estado присваивалась из конструктора следующим образом:

Estado = pplDatosGenerales.ESTADO;

pplDatosGenerales.ESTADO - это строка с элементом строки, ранее выбранным в ComboBox, но когда Я назначаю переменную из конструктора, представление ComboBox не показывает выбранный элемент, переменная назначена правильно, но в представлении ComboBox выглядит пустым, как будто я ничего не выбрал. Почему это происходит и как я могу решить это? Я хочу, чтобы ComboBox показывал значение, которое имеет переменная Estado.

1 Ответ

0 голосов
/ 18 марта 2020

Вам нужно будет опубликовать больше вашего кода. Вы установили SelectedValuePath в NOMBRE ... если NOMBRE - строка, тогда ваш тип SelectedValue также должен быть строкой, но вместо этого вы связываете его со свойством модели представления с именем Estado? В этом случае Estado тоже должна быть строкой, и в вашем конструкторе вместо этого вы должны выполнить `Estado = pplDatosGenerales.ESTADO.NOMBRE '.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...