Поле со списком выбранных значений не устанавливается, когда значения поступают из службы WCF

#c# #winforms #wcf

#c# #winforms #wcf

Вопрос:

У меня странная проблема, из-за которой SelectedValue выпадающего списка не устанавливается и всегда остается на первом элементе по умолчанию. Я использую Windows Forms с .Net 4.6.1

Источник данных combobox поступает из службы WCF (которая возвращает список), и мне интересно, может ли это быть проблемой. Вот что я сделал до сих пор, и я отметил ту часть, которая не работает.

Странно то, что я вижу, что значение задано правильно (с помощью отладчика), но поле со списком по-прежнему не меняется.

         private void ReporteTecnicoVerDetalle_Load(object sender, EventArgs e) {
            try {
                cmbTecnico.DataSource = util_service.ListarPersonas(5);
                cmbTecnico.DisplayMember = "Nombre_persona";
                cmbTecnico.ValueMember = "Id_persona";
            } catch (Exception ex) {
                MessageBox.Show("Error al poblar las personas: "   ex.Message);
            }

            try {
                cmbProyecto.DataSource = util_service.ListarProyectos();
                cmbProyecto.DisplayMember = "Nom_proyecto";
                cmbProyecto.ValueMember = "Id_proyecto";
            } catch (Exception ex) {
                MessageBox.Show("Error al poblar los proyectos: "   ex.Message);
            }

            ReporteTecnicoBE rtecBE = tecSvc.MostrarReporte(idReporte);
            
            // The options get populated properly above, but when I set the Selected value it does not work
            cmbProyecto.SelectedValue = rtecBE.Id_proyecto; // "Id_proyecto" is an int
            cmbTecnico.SelectedValue = rtecBE.Id_tecnico; // "Id_tecnico" as is this
          
            // All other fields work fine
            txtDetalle.Text = rtecBE.Detalles_reporte;
            txtId.Text = rtecBE.Id_proyecto.ToString();
            dtpFecha.Text = rtecBE.Fecha_reporte.ToString();
        }
  

Спасибо!

Комментарии:

1. Является ReporteTecnicoVerDetalle_Load событием загрузки… Кстати, всегда устанавливайте DisplayMember , затем ValueMember , затем DataSource . Является ли это частью процедуры инициализации, или эти элементы управления были ранее инициализированы другим источником данных? Есть ли у выпадающих списков дескриптор в это время? (например, они не будут отображаться, если оба отображаются на дополнительной вкладке TabControl или по другим причинам — в настоящее время не отображаются).

2. Это событие загрузки формы, но изменение порядка вещей, похоже, устранило проблему, спасибо!