wpf - 将列表绑定(bind)到 DataGrid

标签 wpf binding datagrid

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

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 添加行。但所有行都是空白的。

最佳答案

改变这个:

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 不支持绑定(bind)到字段。只有属性。还有一个 struct不是您要表示的数据的合适类型。

关于wpf - 将列表绑定(bind)到 DataGrid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18068413/

相关文章:

c# - WPF,Caliburn.Micro和Dapper组合框

binding - WEB API 2 自托管主机名问题

WPF:DataGrid.RowDetailsTemplate:仅在选择单行时显示详细信息?

c# - 当 WPF DataGrid 选择不可见时,INotifyPropertyChanged 出现空引用异常?

.net - 在另一个线程中使用 WPF 多边形

c# - VisualTreeHelper.GetChildrenCount 返回 0?

c# - 绑定(bind)时将文本添加到 TextBlock Text 属性

带有上下文菜单的 WPF 按钮,如何将上下文菜单宽度绑定(bind)到按钮的宽度?

c# - 为什么在重新创建 WPF DataGrid 列时 Dispatcher.BeginInvoke 不起作用?

c# - mvvm 中的 ComboBox 静态值绑定(bind)