boas estou a tentar preencher uma datagrid no WPF mas não estou a conseguir,
No WinForms fiz assim
private void ListagemEquip()
{
MySqlDataReader reader;
DataRow row = null;
DataTable dtEquip = new DataTable("Equipamentos");
dtEquip.Rows.Clear();
this.dataGridEquip.DataSource = null;
string query = "SELECT id, maquina, marca, modelo, sector, stat FROM " + Controle.maquina + " ORDER BY maquina ASC";
using (MySqlConnection con = new MySqlConnection(Controle.ConSql))
{
using (MySqlCommand cmd = new MySqlCommand(query, con))
{
con.Open();
reader = cmd.ExecuteReader();
List<string> colunas = new List<string>() { "id" , "Equip", "Marca" , "Modelo" , "Sector" };
DataColumn Detalhes = new DataColumn("Detalhes", typeof(Bitmap));
dtEquip.Columns.Add(Detalhes);
foreach (string col in colunas)
{
dtEquip.Columns.Add(col);
}
while (reader.Read())
{
row = dtEquip.NewRow();
int stat = Convert.ToInt16(reader.GetInt16("stat"));
Bitmap EquipOn = new Bitmap(Manutencao.Properties.Resources.verEquipOn);
Bitmap EquipOff = new Bitmap(Manutencao.Properties.Resources.verEquipOff);
row[0] = stat == 2 ? EquipOff : EquipOn;
row[1] = reader["id"];
row[2] = reader["maquina"].ToString().ToUpper();
row[3] = funcao.noNull(reader["marca"].ToString()).ToUpper();
row[4] = funcao.noNull(reader["modelo"].ToString()).ToUpper();
row[5] = funcao.noNull(reader["sector"].ToString()).ToUpper();
dtEquip.Rows.Add(row);
}
reader.Close();
this.dataGridEquip.DataSource = dtEquip;
this.dataGridEquip.Columns["Detalhes"].HeaderText = "";
this.dataGridEquip.Columns["Detalhes"].FillWeight = 15;
this.dataGridEquip.Columns["id"].Visible = false;
this.dataGridEquip.Columns["Equip"].FillWeight = 30;
this.dataGridEquip.Columns["Equip"].Frozen = true;
}
con.Close();
}
}
O que pretendia era preencher da forma idêntica usando o DataRow para poder manipular os valores apresentados tipo funções personalizadas "funcao.noNull".
Não prentendia o Fill
Obrigado
↧