绑定到DataTable的WPF DataGrid不显示自定义对象

时间:2017-07-29 14:02:03

标签: c# .net wpf datatable datagrid

我正在尝试使用DataGrid显示动态创建的DataTable。 DataTable最多可包含n列,其中第1列包含表示公司名称的字符串。第2列... n包含自定义类型的对象BalanceOnDate。每个列的标题都是一个表示日期的字符串。

标题和我的第一列字符串正确显示,但应该显示BalanceOnDate对象的其余列是空的。我已经检查过我的DataTable不为空,因此DataGrid没有将BalanceOnDate对象显示为字符串存在一些问题。

有没有人知道如何解决这个问题,以便BalanceOnDate类型的列通过调用BalanceOnDate.ToString()来显示每个对象的字符串表示形式?或者也许有一些方法可以为BalanceOnDate对象创建转换器。

感谢。

为DataTable创建我的列:

private void GenerateDates(DateTime firstDate, DateTime lastDate)
{
    DailyLiquidity.Columns.Add("Company");
    int i = 1;
    for (DateTime date = firstDate; date <= lastDate; date = date.AddDays(1), i++)
    {
        DailyLiquidity.Columns.Add(date.ToString(columnNameFormat), typeof(BalanceOnDate));
    }
}

填充行:

DailyLiquidity.Rows.Add(companyName);
i++;
DailyLiquidity.Rows[i].SetField(dueDate, new BalanceOnDate(companyName, dueDate, new Money(amount), invoiceNumber));

将DataGrid绑定到DataTable:

<DataGrid AutoGenerateColumns="True" ItemsSource="{Binding DailyLiquidity}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" FrozenColumnCount="1" >
</DataGrid>

0 个答案:

没有答案