我通过IDictionary将Datagrid绑定到动态数据:http://www.scottlogic.co.uk/blog/colin/2009/04/binding-a-silverlight-datagrid-to-dynamic-data-via-idictionary/comment -page-1 /#评论- 8681
但我不想在xaml中定义任何列(下面是如何在Colin Eberhardt的帖子中完成它
<data:DataGrid.Columns>
<data:DataGridTextColumn Header="Forename" Binding="{Binding Converter={StaticResource RowIndexConverter}, ConverterParameter=Forename}" />
</data:DataGrid.Columns>
Run Code Online (Sandbox Code Playgroud)
所以我编写了以下代码来尝试在后面的代码中执行相同的操作,但代码不会调用RowIndexConverter.必须遗漏一些东西.
码:
// add columns
DataGridTextColumn textColumn = new DataGridTextColumn();
textColumn.Header = "Forename";
Binding bind = new Binding("Forename");
bind.Converter = new RowIndexConverter() ;
bind.ConverterParameter = "Forename";
textColumn.Binding = bind;
_dataGrid.Columns.Add(textColumn);
Run Code Online (Sandbox Code Playgroud)
其余代码(此处为上下文):
// generate some dummy data
Random rand = new Random();
for (int i = 0; i < 200; i++)
{
Row row = new Row();
row["Forename"] = s_names[rand.Next(s_names.Length)];
row["Surname"] = s_surnames[rand.Next(s_surnames.Length)]; …Run Code Online (Sandbox Code Playgroud)