动态添加列的 DataGrid 绑定

DataGrid binding for dynamically added column

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

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

现在,我已经按照 this 在运行时将列添加到 DataGrid,并且我正在尝试将相同的 ObservableCollection "AnswerPossibilities" 绑定到列:

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

网格显示"Header 1",但是缺少"AnswerPossibilities",网格是空的。

DataGrid 的 XAML 是

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

我已经尝试将 DisplayMemberPath="Text" 添加到 DataGrid,但这并没有改变任何事情。在使用网格半天之后.. 如果有任何帮助,我将不胜感激!

AnswerPossibilities 似乎是您要将 ListBox/DataGrid 绑定到的集合。为列创建绑定时,您需要指定要绑定到的 ObservableCollection 中项目的 属性。

尝试如下更改:

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