hola amigos soy nuevo aqui..
quiero pedirle su ayuda para resolver un problema que tengo en una aplicacion de windows form en csharp....
tengo una clase para productos
class productos
{
string clave;
public string Clave
{
get { return clave; }
set { clave = value; }
}
string nombre;
public string Nombre
{
get { return nombre; }
set { nombre = value; }
}
int cantidad;
public int Cantidad
{
get { return cantidad; }
set { cantidad = value; }
}
float precio;
public float Precio
{
get { return precio; }
set { precio = value; }
}
string marca;
public string Marca
{
get { return marca; }
set { marca = value; }
}
string fechaCaducidad;
public string FechaCaducidad
{
get { return fechaCaducidad; }
set { fechaCaducidad = value; }
}
string comentario;
public string Comentario
{
get { return comentario; }
set { comentario = value; }
}
public byte[] Imagen
{ get; set; }//es para almacenar imagen en la lista
}
}
una clase de operaciones productos...
class operacionesProductos
{
list
<productos
>listaProductos
=new lis
<productos
>();
public void agregar(productos producto)
{
listaproductos.add(producto);
}
public list<productos>consultagral()
{
return listaproductos;
}
}
tengo un windows form donde guardo los datos el codigo del formulario es...
Productos producto;
OperacionesProductos operacion;
List<Productos>listaAuxiliar;
public AgregarProductos()
{
operacion
= new OperacionesProductos
();InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
OpenFileDialog fileDialog
= new OpenFileDialog
(); fileDialog.Filter = "Archivo JPG|*.jpg";
if (fileDialog.ShowDialog() == DialogResult.OK)
{
imagenProducto.Image = Image.FromFile(fileDialog.FileName);
}
}
private void buttonAgregar_Click(object sender, EventArgs e)
{
producto
= new Productos
();producto.Clave = textBoxClave.Text;
producto.Nombre = textBoxNombre.Text;
producto.Cantidad =int.Parse( textBoxCantidad.Text);
producto.Precio =Single.Parse( textBoxPrecio.Text);
producto.Marca = textBoxMarca.Text;
producto.FechaCaducidad = dateTimePicker1.Value.ToShortDateString().ToString ();
producto.Comentario = textBoxComentario.Text;
producto.Imagen = ImageHelper.ImageToByteArray(imagenProducto.Image) ;
operacion.AgregarProductos(producto);
MessageBox.Show(":::Producto agregado exitosamente:::");
textBoxClave.Text = textBoxNombre.Text = textBoxCantidad.Text = textBoxMarca.Text = textBoxPrecio.Text= textBoxComentario.Text= "";
textBoxClave.Focus();
}
aqui es la consulta general pero dentro de windows form donde realizo la operacion de agregar productos y los realiaza y visualiza en datgridview
private void button1_Click(object sender, EventArgs e)
{
dataGridView1.Visible = true;
List<Productos> lista;
lista = operacion.ConsultaGral();
int fila = 0;
foreach (var item in lista)
{
dataGridView1.Rows.Add();
dataGridView1.Rows[fila].Cells[0].Value = item.Clave;
dataGridView1.Rows[fila].Cells[1].Value = item.Nombre;
dataGridView1.Rows[fila].Cells[2].Value = item.Cantidad;
dataGridView1.Rows[fila].Cells[3].Value = item.Precio;
dataGridView1.Rows[fila].Cells[4].Value = item.Marca;
dataGridView1.Rows[fila].Cells[5].Value =item.FechaCaducidad;
dataGridView1.Rows[fila].Cells[6].Value = item.Comentario;
dataGridView1.Rows[fila].Cells[7].Value = item.imagen;//deberia visualizar la imagen que agrego...
fila++;
}
}
el problema que tengo es de que al usar list<productos>listaAuxiliar;
dentro de otro windows form este no realiza nada.
el codigo es el siguiente..
namespace proyectoProductos
{
public partial class consultaGeneral : Form
{
OperacionesProductos operacion;
public consultaGeneral()
{
operacion
= new OperacionesProductos
();InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
dataGridView1.Visible = true;
List<Productos> lista;
lista = operacion.ConsultaGral();
int fila = 0;
foreach (var item in lista)
{
dataGridView1.Rows.Add();
dataGridView1.Rows[fila].Cells[0].Value = item.Clave;
dataGridView1.Rows[fila].Cells[1].Value = item.Nombre;
dataGridView1.Rows[fila].Cells[2].Value = item.Cantidad;
dataGridView1.Rows[fila].Cells[3].Value = item.Precio;
dataGridView1.Rows[fila].Cells[4].Value = item.Marca;
dataGridView1.Rows[fila].Cells[5].Value =item.FechaCaducidad;
dataGridView1.Rows[fila].Cells[6].Value = item.Comentario;
dataGridView1.Rows[fila].Cells[7].Value = item.imagen;//deberia visualizar la imagen que agrego...
fila++;
}
//este no visualiza nada
}
para mas detalles el programa consiste en un menu en donde se agregen productos,consulta general,consulta individual,modificar eliminar datos de la lista
y visualizarlos en un datagridview..
quiero saber cual es mi error
de antemano muchas gracias....
Otra cosa,
Las propiedades, si no vas a revisar nada en el get o en el set entonces es suficiente:
public string NombrePropiedad { get; set; }
Si la quieres de solo lectura:
public string NombrePropiedad { get; private set; }
De esa forma nada más puedes asignarle valores dentro de la clase y es readonly fuera de ella.
Un saludo!