Hola!
Estoy trabajando con C# y WinForm y no puedo avanzar debido a que no encuentro la solución a lo siguiente, explico:
Estoy llenando mis dos ComboBox con una lista genérica:
List<Estatus> listEstMot = .....;
y lo hago de la siguiente forma:
(**)
var estatus =
(from listEs in listEstMot
select new
{
DisplayMemberEst = listEs.Estatus.Descripcion,
ValueMemberEst = listEs.Estatus.Id,
DisplayMemberMot = listEs.Motivos[**??**].Descripcion,
}).ToList();
cmbEstatus.DataSource = estatus;
cmbEstatus.DisplayMember = "DisplayMemberEst";
cmbEstatus.ValueMember = "ValueMemberEst";
cmbMotivo.DataSource = estatus;
cmbMotivo.DisplayMember = "DisplayMemberMot";
...Lo hago de esa forma ya que mi objeto "Estatus" contiene una lista de motivos algo como esto:
Estatus =
{
Clave: 0001,
Descripción: 'En Proceso',
Motivos =
{
Clave: 0002,
Descripción: 'En taller y'
},
{
Clave: 0001,
Descripción: 'En taller x'
}
}
.. lleno los combobox de esa forma porque no funciona el:
cmbEstatus.DisplayMember = "Estatus.Descripcion";
cmbEstatus.ValueMember = "Estatus.Id";
Y ya que mi estatus puede contener varios motivos, pueees.. la cuestión es, que cuando quiero mostrar los Motivos con el código(**), lo tengo que hacer de la siguiente forma:
DisplayMemberMot = listEs.Motivos[**??**].Descripcion,
pero tengo que indicarle un index por ser varios motivos, en todo caso si le pongo 0, me traerá todo los motivos de todo los estatus que estén en la posición 0, lo que yo quiero hacer es que me traiga TODOS los motivos de todos los estatus no solo los que se encuentren en x posición.
pero no he encontrado la forma de como hacerlo, ya que no puedo meter 'for' dentro del select (obviamente). y estando fuera del 'select' no puedo acceder a los elementos que forman el listado.