とっても便利なコントロールっぽい。
書き慣れない部分もあるので、少しずつ小出しで書いてみよう。
まずは、プロジェクトを作成。 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 件のコメント:
コメントを投稿