用IEnumerable填充一些DataView列

时间:2012-03-27 18:02:24

标签: c# winforms ienumerable

我有一个返回某个自定义类型的IEnumerable的方法。

 public IEnumerable<_Persona> RegresaBusquedaPersona(string nombres)
        {
            return context.personas.Where(x => x.Nombres.Contains(nombres) ||
                                            x.ApellidoP.Contains(nombres) ||
                                            x.ApellidoM.Contains(nombres))
                                            .Select(x => new _Persona
                                            {
                                                Id = x.IDPersona,
                                                Nombres = x.Nombres,
                                                ApellidoP = x.ApellidoP,
                                                ApellidoM = x.ApellidoM,
                                                FechaNacimiento = x.FechaNacimiento
                                            });
        }

即使_Persona有其他属性,我也只想返回方法中选择的属性。

问题是当我用我的DataView填充结果时,未设置的属性会被显示,我不想这样,所以我手动使这些列不可见。

public void LLenarDataView(IEnumerable<_Persona> personas)
        {
            _listaPersonas.DataSource = personas;
            _listaPersonas.Columns["Sexo"].Visible = false;
            _listaPersonas.Columns["Rfc"].Visible = false;
            _listaPersonas.Columns["Curp"].Visible = false;
            _listaPersonas.Columns["EstadoCivil"].Visible = false;
            _listaPersonas.Columns["Direccion"].Visible = false;
            _listaPersonas.Columns["Cp"].Visible = false;
            _listaPersonas.Columns["Delegacion"].Visible = false;
            _listaPersonas.Columns["Email"].Visible = false;
            _listaPersonas.Columns["Telefono"].Visible = false;
            _listaPersonas.Columns["Celular"].Visible = false;
            _listaPersonas.Columns["Empresa"].Visible = false;
            _listaPersonas.AutoResizeColumns();
        }

有没有更简单的方法做同样的事情?

1 个答案:

答案 0 :(得分:1)

您的数据视图会根据您班级的数据自动生成列。隐藏列的简洁方法是在类中使用“Browsable”属性,如下所示:

[Browsable(false)]
public string MyString { get;set;}

请参阅此post以供参考。