1

私は以下に書かれたXAMLを使用しています

<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;
        }

    }
}

患者クラスには単純なプロパティがほとんどありません

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; }
    }

アプリを実行すると、データグリッドにはすべての列にデータが含まれていますが、IDと年齢と名、ミドル、姓をスキップするなどの列をいくつかだけにしたい場合は、何が最善の方法ですか.

非表示にしたい列ごとにこれを行うのは悪い方法だと思います

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

1 に答える 1

4

に設定AutoGenerateColumnsして false、必要な列を追加できます。

<DataGrid ItemsSource="{Binding}" AutoGenerateColumns="False" Grid.Row="1" Name="gridPatients" >
 <ItemTemplate>
   <DataTemplate>
      <DataGridTextColumn Binding={ Path=FirstName}/>
    ... 
    <DataTemplate>
 </ItemTemplate>
</DataGrid>
于 2013-01-10T16:50:01.570 に答える