DataGrid绑定动态添加列

时间:2015-03-10 15:44:27

标签: c# wpf xaml datagrid

我有一个ObservableCollection" AnswerPossibilities"我可以成功地将ListBox绑定到:

<ListBox ItemsSource="{Binding AnswerPossibilities}" DisplayMemberPath="Text" />

现在,我已经跟着this在运行时向DataGrid添加了列,并且我试图绑定相同的ObservableCollection&#34; AnswerPossibilities&#34;到专栏:

DataGridTextColumn column = new DataGridTextColumn()
{
    Header = "Header 1",
    Binding = new System.Windows.Data.Binding("AnswerPossibilities")
};
ColumnCollection.Add(column);

网格显示&#34;标题1&#34;,但&#34;答案可能性&#34;缺少,网格是空的。

DataGrid的XAML是

<DataGrid Name="dataGrid"
local:DataGridColumnsBehavior.BindableColumns="{Binding ColumnCollection}"
AutoGenerateColumns="False"/>

我尝试过添加DisplayMemberPath =&#34; Text&#34;到DataGrid,但这并没有改变一件事。经过半天的工作..我非常感谢任何帮助!

1 个答案:

答案 0 :(得分:1)

看起来AnswerPossibilities是您将ListBox / DataGrid绑定到的集合。为列创建Binding时,需要在ObservableCollection中指定要绑定到的项的属性。

尝试更改如下:

DataGridTextColumn column = new DataGridTextColumn()
{
    Header = "Header 1",
    Binding = new System.Windows.Data.Binding("Text")
};
ColumnCollection.Add(column);