【问题标题】:system.data.datarowview in each row of DataGrid when binding to DataTable绑定DataTable时DataGrid每一行的system.data.datarowview
【发布时间】:2018-09-28 11:36:00
【问题描述】:

我正在尝试将 DataTable 绑定到 wpf 中的 DataGrid

这是我的代码:

我的模特:

private DataTable _runNumbers;
public DataTable RunNumbers
{
    set
    {
        _runNumbers = value;
    }
    get
    {
        if (_runNumbers == null) { _runNumbers = new DataTable("RunNumbers"); }
        return _runNumbers;
        }
    }


public RunNumberModel() //Constructor
{
    RunNumbers.Columns.Add(" ", typeof(string));
    RunNumbers.Columns[" "].ReadOnly = true;
    RunNumbers.Rows.Add("Test");
}

我的看法:

<DataGrid Grid.Row="1" Grid.Column="1" Width="400" HorizontalAlignment="Center" Margin="20" ItemsSource="{Binding RunNumbers.RunNumbers}" />

产生:

我似乎无法弄清楚如何显示单元格的值,而不是 System.Data.DataRowView - 我在想也许我需要某种 DataTemplate,但我不确定如何设置它。

我在网上看了很多其他帖子,都没有成功。

如果有人知道这个问题,我将不胜感激。谢谢!

【问题讨论】:

    标签: c# wpf datatable wpfdatagrid


    【解决方案1】:

    如果您使用有效的列名,例如“x”,它应该可以工作:

    public RunNumberModel() //Constructor
    {
        RunNumbers.Columns.Add("x", typeof(string));
        RunNumbers.Columns["x"].ReadOnly = true;
        RunNumbers.Rows.Add("Test");
    }
    

    【讨论】:

    • 这已解决,谢谢!无论如何我可以没有列名吗?
    • @Alfie: RunNumbers.Columns.Add(new DataColumn());?
    • 列名“Column1”
    • 是的。所以?要么指定明确的列名,要么不指定?
    • 不抱歉,我的意思是我怎么能在 DataGrid 这个特定列中没有列名,所以单元格只是空白?
    猜你喜欢
    • 2012-07-05
    • 2014-09-27
    • 1970-01-01
    • 1970-01-01
    • 2012-11-22
    • 2013-07-28
    • 2015-05-06
    • 2011-08-17
    • 1970-01-01
    相关资源
    最近更新 更多