2013-01-10 35 views
1

我米使用XAML下面寫如何在WPF 4.5 Datagrid中刪除少量不需要的列?

<Window x:Class="ERP.WinApp.Views.Admin.Patients" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     Title="Patients" Height="auto" MinWidth="1024" Width="1024" ShowInTaskbar="False" Icon="/ERP.WinApp;component/Images/patient.png" WindowStartupLocation="CenterScreen"> 
    <Grid> 
<DataGrid ItemsSource="{Binding}" Grid.Row="1" Name="gridPatients" ></DataGrid> 
</Grid> 
</Window> 

而後面的代碼下面寫

namespace ERP.WinApp.Views.Admin 
{ 
    /// <summary> 
    /// Interaction logic for Patients.xaml 
    /// </summary> 
    public partial class Patients : Window 
    { 
     public Patients() 
     { 
      InitializeComponent(); 

      List<Patient> list = new List<Patient>(); 
      list = // Populate it through some method 
      gridPatients.DataContext = list; 
     } 

    } 
} 

Patient類是有一些簡單的性質

public class Patient 
    { 

     public int Id { get; set; } 

     public string FirstName { get; set; } 

     public string MiddleName { get; set; } 

     public string LastName { get; set; } 

     public string FullName { get{ return this.FirstName+ " " +this.MiddleName+ " " +this.LastName; } } 

     public DateTime DOB { get; set; } 

     public int Age { get { return DateTime.Today.Year - this.DOB.Year; } } 

     public char Gender { get; set; } 
    } 

當我運行該應用程序我的DataGrid是所有列中都有數據,而如果我想只有幾列只是跳過Id和年齡以及第一,中間和最後一個名字,那麼最好的方法是什麼。

我認爲這樣做是因爲我想隱藏

gridPatients.Columns[0].Visibility = Visibility.Collapsed; 

回答

4

您可以設置AutoGenerateColumnsfalse,並添加所需的列每列糟糕的方式。

<DataGrid ItemsSource="{Binding}" AutoGenerateColumns="False" Grid.Row="1" Name="gridPatients" > 
<ItemTemplate> 
    <DataTemplate> 
     <DataGridTextColumn Binding={ Path=FirstName}/> 
    ... 
    <DataTemplate> 
</ItemTemplate> 
</DataGrid>