我正在尝试使用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>