2012-03-27 84 views
0

我有一個方法返回一些自定義類型的IEnumerable。用IEnumerable填充一些DataView列

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

您的dataview會根據您班級的數據自動生成列。隱藏列整齊的方法是使用「可瀏覽」,在你的類像這樣的屬性:

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

參考見本這樣post

+0

我不知道這個屬性,謝謝。 – 2012-03-27 18:28:25

+0

不客氣:) – 2012-03-27 18:28:52