将列表绑定到DataGrid

时间:2013-08-05 21:51:46

标签: wpf binding datagrid

我在将List绑定到WPF中的DataGrid时遇到问题。让我解释一下我的尝试。

public struct SomeInfo
{
    public string Name;
    public string Description;
    public string ID;
}

List<SomeInfo> arrSomeInfo;

arrSomeInfo包含多个结构SomeInfo项。

DataGrid看起来像:

<DataGrid Name="grdMailbag" AutoGenerateColumns="False" ItemsSource="{Binding}">
    <DataGrid.Columns>
        <DataGridTextColumn x:Name="cID" Binding="{Binding ID}" Header="ID" />
        <DataGridTextColumn x:Name="cName" Binding="{Binding Name}" Header="Name" />
        <DataGridTextColumn x:Name="cDescription" Binding="{Binding Description}" Header="Description" />
    </DataGrid.Columns>
</DataGrid>

我尝试了以下但没有成功:

this.grdMailbag.ItemsSource = arrSomeInfo; //Didn't worked
this.grdMailbag.DataContext= arrSomeInfo;  // Didn't worked

正在发生的事情是它按照List arrSomeInfo添加行,但所有行都是空白的。

1 个答案:

答案 0 :(得分:15)

改变这个:

public struct SomeInfo
{
    public string Name;
    public string Description;
    public string ID;
}

到此:

public class SomeInfo
{
    public string Name {get;set;}
    public string Description {get;set;}
    public string ID {get;set;}
}

WPF不支持绑定到字段。只有属性。而struct对于您尝试表示的数据来说并不合适。