2017-04-25 18 views
-1
私は、このようなテーブルに

WPFデータグリッド、行

Table to make

最初の列を作成する必要があり

でコレクションは月番号で、 2番目の列は日数で、 3列目は日数です。

そして、次の31の列は10進数値です。

だから私はので、私のWPFは、このようなものになり、この値のリストをバインドしたい:それらを作る方法を

<Grid> 

<DataGrid AutoGenerateColumns="False"> 

    <DataGrid.Columns> 


       <DataGridTextColumn Header="Month" Binding="{Binding Month}"/> 
       <DataGridTextColumn Header="NumberOfDays" Binding="{Binding NumberOfDays}"/> 
       <DataGridTextColumn Header="NumberOfHours" Binding="{Binding NumberOfHours}"/> 


       //so here I`d like to have collection to 31 columns 




    </DataGrid.Columns> 


</DataGrid > 
</Grid> 

任意のアイデア?

もちろん私はグリッドを使用してテキストブロックを生成することができますが、このソリューションは非エレガントであるようです。

私はそれをinideideのDataGridなどとしたいと思います。

+0

「Month」、「NumberOfDays」、「...」列とまったく同じ方法でそれらを作成します – ASh

答えて

0

あなたがプログラムで列を生成することができ、次のいずれか

for (int i = 1; i< 32; ++i) 
{ 
    dg.Columns.Add(new DataGridTextColumn() { Header = i.ToString(), Binding = new Binding("Day" + i.ToString()) }); 
} 

それとも、あなたのXAMLマークアップでそれらを定義することができた:

<DataGrid.Columns> 
    <DataGridTextColumn Header="Month" Binding="{Binding Month}"/> 
    <DataGridTextColumn Header="NumberOfDays" Binding="{Binding NumberOfDays}"/> 
    <DataGridTextColumn Header="NumberOfHours" Binding="{Binding NumberOfHours}"/> 
    <DataGridTextColumn Header="1" Binding="{Binding Day1}"/> 
    <DataGridTextColumn Header="2" Binding="{Binding Day2}"/> 
    //and so on 
</DataGrid.Columns> 

あなたは一日あたりのパブリックプロパティを追加する必要があります(1日目、2日目等)を、Month,NumberOfDaysおよびNumberOfHoursのプロパティが定義されているクラスに割り当てます。

関連する問題