【发布时间】:2013-07-08 21:38:19
【问题描述】:
所以,有一个自定义类,Material:
class Material
{
public string Qty { get; set; }
public string Description { get; set; }
public string Supplier { get; set; }
public string PONumber { get; set; }
public string RigName { get; set; }
public string ProjectName { get; set; }
public string ShipTo { get; set; }
public string ShipVia { get; set; }
public Material()
{
Qty = "5";
Description = "This is a test";
Supplier = "Wal-Mart";
PONumber = "23423";
RigName = "Test Rig";
ProjectName = "Test Project";
ShipTo = "Kevin";
ShipVia = "Danny";
}
}
我有一个list 的Material:
var myList = new List<Material>
{
new Material()
};
它被设置为我的DataGrid的项目来源:
dataGrid1.ItemsSource = myList;
现在,在 XAML 中,如果我设置 AutoGenerateColumns="True",它会根据 Material 的属性为 dataGrid1 创建标头。但是,我只想要 4 列,Qty、Description、Supplier 和 PONumber。所以,我写了以下内容:
<DataGrid AutoGenerateColumns="False"
Name="dataGrid1">
<DataGrid.Columns>
<DataGridTextColumn Header="Qty"
Binding="{Binding XPath=@Qty}" />
<DataGridTextColumn Header="Description"
Binding="{Binding XPath=@Description}" />
<DataGridTextColumn Header="Supplier"
Binding="{Binding XPath=@Supplier}" />
<DataGridTextColumn Header="PO#"
Binding="{Binding XPath=@PONumber}" />
</DataGrid.Columns>
</DataGrid>
我的问题是,现在dataGrid1 是空的。我觉得我错过了一些完全愚蠢的东西,我希望一双新的眼睛能帮助我发现这一点。
所以,我的问题是,我是不是走错了路?有没有办法将List<Material> 绑定到dataGrid1 并且只显示我想要的列?
【问题讨论】: