使用xaml动态地将月份添加为datagrid列

时间:2015-05-23 15:16:15

标签: c# wpf xaml mvvm datagrid

我试图将之前的12个月添加为Datagrid中的列,但我有点卡住了。 我希望它们显示为:

2014年5月2014年6月2014年7月2014年8月2014年...... 2015年5月在XAML,如果可能的话。 7月即2014年7月2014年8月...... 2014年7月

目前我通过使用代码来实现它,但我想使用XAML来实现它。

var nameCol = new DataGridTextColumn();
nameCol.Heade = "Name";

for (int i = -12; i <= 0; i++)
        {
            var lastYearMonth = DateTime.Now.AddMonths(i).ToString("Y");
            var col = new DataGridTextColumn();
            col.Header =  lastYearMonth;
            col.Binding = new Binding("CategoryIncome");
            monthlyCategories.Columns.Add(col);
        }
var total = new DataGridTextColumn();
total.Header = "Total";

1 个答案:

答案 0 :(得分:0)

通常,如果你想在XAML中表达一些行为/逻辑而不编写任何代码,那么恰当命名的&#34;行为&#34;是一个很好的解决方案例如,请参阅this introduction

另一种可能性是在视图模型中创建月份字符串并使用标题的数据绑定。您可能必须创建special header template才能执行此操作。