仅用IEnumerable填充一些DataView列

本文关键字:DataView IEnumerable 填充 仅用 | 更新日期: 2023-09-27 18:29:06

我有一个方法,它返回某种自定义类型的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();
        }

有没有更简单的方法可以做到这一点?

仅用IEnumerable填充一些DataView列

您的数据视图会根据类中的数据自动生成列。隐藏列的巧妙方法是在类中使用"可浏览"属性,如下所示:

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

请参阅本文以供参考。