C# 无法在WPF中将ObservableCollection从MVVM绑定到ListView

C# 无法在WPF中将ObservableCollection从MVVM绑定到ListView,c#,wpf,mvvm,C#,Wpf,Mvvm,我试图将列表视图绑定到类的可观察集合,由于某种原因,GridViewColumn的DisplayMemberBinding属性没有绑定到集合的内容。 如果我使用ListView.ItemTemplate,一切正常。但是我需要网格形式的数据,所以我在ListView.View中使用GridView 第一个图像,图像1是调试模式下的AssessmentSummaryList内容。 第二个图像,图像2是屏幕上显示的最终输出。列表中的内容未绑定到GridViewColumn 以下是我正在使用的两个视图模

我试图将列表视图绑定到类的可观察集合,由于某种原因,GridViewColumn的DisplayMemberBinding属性没有绑定到集合的内容。 如果我使用ListView.ItemTemplate,一切正常。但是我需要网格形式的数据,所以我在ListView.View中使用GridView

第一个图像,图像1是调试模式下的AssessmentSummaryList内容。 第二个图像,图像2是屏幕上显示的最终输出。列表中的内容未绑定到GridViewColumn

以下是我正在使用的两个视图模型:

public class AssessmentSummaryViewModel : BaseViewModel
{
    public string Question { get; set; }

    public string Title { get; set; }

    public string SelectedOption { get; set; }

    public int Id { get; set; }
}

public class AssessmentViewModel : BaseViewModel 
{
    private ObservableCollection<AssessmentSummaryViewModel> assessmentSummaryList;

    public ObservableCollection<AssessmentSummaryViewModel> AssessmentSummaryList
    {
        get { return assessmentSummaryList; }
        set
        {
            assessmentSummaryList = value;
            NotifyPropertyChanged("AssessmentSummaryList");

        }
    } 

    public void SetNextAssessment()
    {
       AssessmentSummaryList= Service.GetAssessmentSummary(ApplicationModel.SelectedModule.Id,    
         ApplicationModel.SelectedUtility.Id); //the service returns ObservableCollection<AssessmentSummaryViewModel> data
      var EndScreen = new AssessmentSummaryView(); //Setting the last screen to AssessmentSumamryView, this will be called dynamically from other UserControl Xaml Page
    }
}
尝试以下方法:

<ListView ItemsSource="{Binding Path=DataContext.AssessmentSummaryList, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}">
<ListView.View>
    <GridView>
        <GridView.Columns>
            <GridViewColumn Header="Design Element" Width="200" DisplayMemberBinding="{Binding Path=Title}"/>
            <GridViewColumn Header="Question" Width="400" DisplayMemberBinding="{Binding Path=Question}"/>
            <GridViewColumn Header="Response" Width="300" DisplayMemberBinding="{Binding Path=SelectedOption}"/>
        </GridView.Columns>
    </GridView>
</ListView.View>


在我的工作中,项目列表出现了吗?如果没有,那么很可能您没有将usercontrol的datacontext绑定到vm@dnr3:我发布的代码与我在应用程序中的代码完全相同。我编辑了这个问题,以包括调试模式下列表内容的图像和屏幕上显示的最终输出。GridViewColumn没有从列表中获取内容。@dnr3:您是否必须执行任何不同的操作,或者您只是尝试了这段代码?在我的情况下,它也可以正常工作。你能试着分解问题并提供更具体的例子吗?也在这里工作。如果我是你,我会附加wpfinspector并处理binding属性,问题一定在那里。
public partial class AssessmentSummaryView : UserControl
{
    public AssessmentSummaryView()
    {
        InitializeComponent();
    }
}
<ListView ItemsSource="{Binding Path=DataContext.AssessmentSummaryList, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}">
<ListView.View>
    <GridView>
        <GridView.Columns>
            <GridViewColumn Header="Design Element" Width="200" DisplayMemberBinding="{Binding Path=Title}"/>
            <GridViewColumn Header="Question" Width="400" DisplayMemberBinding="{Binding Path=Question}"/>
            <GridViewColumn Header="Response" Width="300" DisplayMemberBinding="{Binding Path=SelectedOption}"/>
        </GridView.Columns>
    </GridView>
</ListView.View>