とっても便利なコントロールっぽい。
書き慣れない部分もあるので、少しずつ小出しで書いてみよう。
まずは、プロジェクトを作成。 Grid内にDataGridを配置。
<Window x:Class="TestDataGrid.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="MainWindow" Height="350" Width="525"> <Grid> <DataGrid x:Name="NameList" AutoGenerateColumns="False" HorizontalAlignment="Left" Margin="10,10,0,0" VerticalAlignment="Top"> <DataGrid.Columns> <DataGridTextColumn Header="本名" Binding="{Binding Name}"/> <DataGridTextColumn Header="源氏名" Binding="{Binding StageName}"/> <DataGridTextColumn Header="指名番号" Binding="{Binding IdNumber}"/> <DataGridTextColumn Header="登録日" Binding="{Binding Registered}"/> </DataGrid.Columns> </DataGrid> </Grid> </Window>見た目はこんな感じ。

次に、データを作成。
namespace TestDataGrid { /// <summary> /// MainWindow.xaml の相互作用ロジック /// </summary> public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); } } public class TestDataContext { public ObservableCollection<NameData> dataList; public void LoadDataList() { this.dataList = new ObservableCollection<NameData>(); dataList.Clear(); int count = 6; for (int i = 0; i < count; i++) { NameData info = new NameData(); info.Name = "ちひろ" + i; info.StageName = "せん" + i; info.IdNumber = "1000" + i; info.Registered = "2012/07/1" + i; dataList.Add(info); } } } /// <summary> /// 名前情報 /// </summary> public class NameData { public String Name { get; set; } public String StageName { get; set; } public String IdNumber { get; set; } public String Registered { get; set; } } }
【試作1】
まずは、普通にItemsSourceプロパティにリストをセットして表示。
TestDataContext testData; public MainWindow() { InitializeComponent(); this.testData = new TestDataContext(); this.testData.LoadDataList(); this.NameList.ItemsSource = this.testData.dataList; }
これはOK。
一番下の段は、DataGridが編集可能な設定になっているため。
IsReadOnly=Trueにすると表示されない。(デフォルトではFalse)
0 件のコメント:
コメントを投稿