このコードを約 3 時間使用しましたが、機能しません。ComboBox にオブジェクトのリスト (clsMarcas) を入力し、SelectedItem プロパティを使用して同じタイプのオブジェクトを割り当てて DisplayMember を表示しても、何も起こりません。案内していただけますか?
public class clsMarcas
{
public int IdMarca {get; set;}
public string NombreMarca {get; set;}
public clsMarcas()
{
}
public clsMarcas(string strMarca)
{
this.NombreMarca = strMarca;
}
}
public class clsAuto
{
public string Dominio {get; set;}
public clsMarcas Marca {get; set;}
public clsAuto()
{
}
public clsAuto(string Dominio, clsMarcas Marca)
{
this.Dominio = Dominio;
this.Marca = Marca;
}
}
public partial class frmAutosAE
{
public frmAutosAE()
{
InitializeComponent();
}
private clsAuto oAuto;
private clsMarcas defaultMarca;
protected override void OnLoad(System.EventArgs e)
{
base.OnLoad(e);
CargarMarcas();
if (oAuto != null)
{
this.txtDominio.Text = oAuto.Dominio;
SeleccionarMarca(oAuto.Marca);
}
}
private void SeleccionarMarca(clsMarcas Marca)
{
cboMarcas.SelectedItem = Marca;
}
public void SetAuto(clsAuto oAuto)
{
this.oAuto = oAuto;
}
public clsAuto GetAuto()
{
return oAuto;
}
private void CargarMarcas()
{
List<clsMarcas> ListaMarcas = GestorDeRepositorio.GetInstancia().Repositorio.GetMarcas();
this.cboMarcas.DisplayMember = "NombreMarca";
defaultMarca = new clsMarcas { NombreMarca = "<Seleccione una marca>" };
cboMarcas.Items.Add(defaultMarca);
cboMarcas.SelectedIndex = 0;
foreach (clsMarcas elemento in ListaMarcas)
{
this.cboMarcas.Items.Add(elemento);
}
}
public void btnGuardar_Click(System.Object sender, System.EventArgs e)
{
if (validarDatos())
{
if (oAuto == null)
{
oAuto = new clsAuto();
}
oAuto.Dominio = this.txtDominio.Text;
oAuto.Marca=GetMarcaSeleccionada();
this.DialogResult = System.Windows.Forms.DialogResult.OK;
}
}
private clsMarcas GetMarcaSeleccionada()
{
clsMarcas marca=(clsMarcas)cboMarcas.SelectedItem;
if (marca==defaultMarca)
{
return null;
}
return marca;
}
public void btnCancelar_Click(System.Object sender, System.EventArgs e)
{
this.DialogResult = System.Windows.Forms.DialogResult.Cancel;
}
public List<clsMarcas> GetMarcas()
{
Marcas.Clear();
try
{
using (OleDbConnection cnn = new OleDbConnection(ConnectionString.ToString()))
{
cnn.Open();
OleDbTransaction tran = cnn.BeginTransaction();
string strSQL = "SELECT * FROM Marcas";
OleDbCommand comando = new OleDbCommand(strSQL, cnn, tran);
using (OleDbDataReader oReader = comando.ExecuteReader())
{
while (oReader.Read())
{
clsMarcas oMarca = new clsMarcas();
oMarca.IdMarca = oReader.GetInt32(0);
oMarca.NombreMarca = oReader.GetString(1);
Marcas.Add(oMarca);
}
}
tran.Commit();
}
}
catch (Exception ex)
{
throw (ex);
}
return Marcas;
}
}