1

C# を使用して、いくつかの配列を Wpf データグリッドにバインドしようとしています。私ができることは、1 つの配列をデータグリッドにバインドすることだけです。複数の配列をデータグリッドにバインドする方法を知っている人はいますか? 以下で試したコードは機能しません。データグリッドには何も表示されません。

私のDatagridコードスニペット:

<DataGrid Name="MyDatagrid" Grid.Column="1" AutoGenerateColumns="False">
    <DataGrid.Columns>
         <DataGridTextColumn Header="Date"  Width="60" Binding="{Binding Date}"/> 
         <DataGridTextColumn Header="Time" Width="55" Binding="{Binding Time}"/>
         <DataGridTextColumn Header="No" Width="69" Binding="{Binding No}"/>
    </DataGrid.Columns>
</DataGrid>

C# コード スニペット:

string[] Date = {"2-Nov-2012","2-Nov-2012","2-Nov-2012","2-Nov-2012","2-Nov-2012"};
string[] Time={"10:30","10:32","10:35","10:42","10:45"};
int[] No = { 1, 2, 3, 4, 5 };
MyDataGrid.ItemsSource = No;
MyDataGrid.ItemsSource = Date;
MyDataGrid.ItemSource = Time;
4

1 に答える 1

4

複数の配列を同じデータ グリッドにバインドすることはできません。ただし、クラスで同じ目的を達成できます。

public class Row
{
    public string Date { get; set; }
    public string Time { get; set; }
    public int No { get; set; }
}

Linq を使用して入力します。

string[] Date = {"2-Nov-2012","2-Nov-2012","2-Nov-2012","2-Nov-2012","2-Nov-2012"};
string[] Time={"10:30","10:32","10:35","10:42","10:45"};
int[] No = { 1, 2, 3, 4, 5 };

Row[] rows = Date.Select( (date, index) => new Row {
    Date = date,
    Time = Time[index],
    No = No[index]
}).ToArray();

MyDataGrid.ItemsSource = rows;
于 2012-12-05T05:53:22.687 に答える