Como vincular a lista ao dataGridView?
Eu pareço estar correndo em círculos e tenho feito isso nas últimas horas.
Eu quero preencher um datagridview de uma matriz de seqüências de caracteres. Eu li o seu não é possível diretamente, e que eu preciso criar um tipo personalizado que contém a string como uma propriedade pública. Então eu fiz uma aula:
public class FileName
{
private string _value;
public FileName(string pValue)
{
_value = pValue;
}
public string Value
{
get
{
return _value;
}
set { _value = value; }
}
}
esta é a classe container, e ela simplesmente possui uma propriedade com o valor da string. Tudo que eu quero agora é que a string apareça no datagridview, quando eu ligar sua fonte de dados a uma lista.
Também tenho esse método, BindGrid () que eu quero preencher o datagridview com. Aqui está:
private void BindGrid()
{
gvFilesOnServer.AutoGenerateColumns = false;
//create the column programatically
DataGridViewTextBoxColumn colFileName = new DataGridViewTextBoxColumn();
DataGridViewCell cell = new DataGridViewTextBoxCell();
colFileName.CellTemplate = cell; colFileName.Name = "Value";
colFileName.HeaderText = "File Name";
colFileName.ValueType = typeof(FileName);
//add the column to the datagridview
gvFilesOnServer.Columns.Add(colFileName);
//fill the string array
string[] filelist = GetFileListOnWebServer();
//try making a List<FileName> from that array
List<FileName> filenamesList = new List<FileName>(filelist.Length);
for (int i = 0; i < filelist.Length; i++)
{
filenamesList.Add(new FileName(filelist[i].ToString()));
}
//try making a bindingsource
BindingSource bs = new BindingSource();
bs.DataSource = typeof(FileName);
foreach (FileName fn in filenamesList)
{
bs.Add(fn);
}
gvFilesOnServer.DataSource = bs;
}
Finalmente, o problema: o array de strings preenche ok, a lista é criada ok, mas recebo uma coluna vazia no datagridview. Eu também tentei datasource = list <> diretamente, ao invés de = bindingsource, ainda nada.
Eu realmente aprecio um conselho, isso tem me deixado louco.
Obrigado