C# WPF DataGrid无法从ItemsSource绑定

C# WPF DataGrid无法从ItemsSource绑定,c#,wpf,data-binding,datagrid,C#,Wpf,Data Binding,Datagrid,我已经看了好几个小时了,但是我想不出来。。。 我已成功将问题绑定到ItemsSource。Questions是包含QuestionVM对象的可观察集合 由于某些原因,带有问题标题的文本列无法绑定到问题中的问题属性 <DataGrid ItemsSource="{Binding Questions}" AutoGenerateColumns="False" SelectedItem="{Binding SelectedQuestion, Mode=TwoWay}">

我已经看了好几个小时了,但是我想不出来。。。 我已成功将问题绑定到ItemsSource。Questions是包含QuestionVM对象的可观察集合

由于某些原因,带有问题标题的文本列无法绑定到问题中的问题属性

    <DataGrid ItemsSource="{Binding Questions}" AutoGenerateColumns="False" SelectedItem="{Binding SelectedQuestion, Mode=TwoWay}">
        <DataGrid.Columns>
            <DataGridTextColumn Header="Question" Binding="{Binding Question}" Width="*"/>
            <DataGridTemplateColumn Width="100">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <Button Content="Delete"/>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>

            <DataGridTemplateColumn Width="100">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <Button Content="Edit"/>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
        </DataGrid.Columns>
    </DataGrid>
ExistingQuestions包含属性Questions、SelectedQuestion和AddQuestion。这些就是Intellisense所展示的

进一步澄清的图片:

如您所见,这些不是QuestionVM的属性,而是主datacontext。它不想从我设置为ItemsSource的ObservableCollection中选取属性

最新答案

如果某个对象没有出现在Intellisense中,则可能是由于创建该对象的命名空间造成的。 确保对象在同一名称空间中声明,或者尝试将对象问题的名称空间添加到视图中

将命名空间添加到视图的示例

xmlns:helper="clr-namespace:Mynamespace.Myclass"
此外,viewmodel似乎尚未实现INotifyPropertyChanged接口,该接口用于在更新绑定属性时通知控件的视图


Cordalement

我不认为这是你们的问题,但作为你们的主要支持类型和你们班级的重要公共财产的问题是相当令人困惑的。考虑QuestionDTO的类型吗?问题是问题的成员吗?在这种情况下,绑定应该是binding={binding Questions.Question}.@zzxyz我也这么认为。很可能会更改它。@fussel Question是QuestionVM中的一个属性。ItemsSource已绑定到问题VM的可观察集合。无法绑定是什么意思?如果在ViewModel中更改该问题,则不会显示该问题,或者该问题的值不会更新?此外,从DependencyObject派生是毫无意义的,应该实现INotifyPropertyChanged的不是模型,而是视图模型。@Clemens With DependencyObject您是对的,但是,如果模型实现INotifyPropertyChanged,则没有问题。这将是非常罕见但可能的。看看microsoft示例应用程序@SirRufo,确定模型实现INPC是可以的,但这里更重要的是视图模型实现INPC。
        DataContext="{Binding ExistingQuestions, Source={StaticResource Locator}}
xmlns:helper="clr-namespace:Mynamespace.Myclass"