c# - 将多个数组绑定(bind)到 WPF 数据网格

标签 c# wpf datagrid

我尝试使用 C# 将一些数组绑定(bind)到 Wpf 数据网格中。我能做的只是将一个数组绑定(bind)到数据网格中。有谁知道如何将多个数组绑定(bind)到数据网格中?我在下面尝试的代码不起作用。数据网格不显示任何内容。

我的 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;

最佳答案

您不能将多个数组绑定(bind)到同一个数据网格;但是你可以用一个类来达到同样的目的:

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;

关于c# - 将多个数组绑定(bind)到 WPF 数据网格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13716834/

相关文章:

c# - wpf 附加属性 : where to unsubscribe from event handling?

wpf - 如何自定义WPF StatusBar布局?

java - 如何在 J2EE/JSP 中的 MVC2 架构中创建可编辑的数据网格

apache-flex - Flex DataGrid Flex中的Align复选框

c# - 在提供程序连接上启动事务时发生错误。有关详细信息,请参阅内部异常

c# - Linq OrderBy 不对原始集合进行排序吗?

c# - 在 .NET 中释放 COM 对象的 "ownership"

c# - 计算三角形的面积

wpf - 如何改变文本 block 的高度

datagrid - dojo dgrid 内的小部件