4
我試圖將列表視圖綁定到Observable集合的類,出於某種原因,GridViewColumn的DisplayMemberBinding屬性沒有綁定到集合的內容。 如果我使用ListView.ItemTemplate,一切工作正常。但是我需要網格形式的數據,所以我在ListView.View中使用了GridView。無法將ObservableCollection從MVVM綁定到WPF中的ListView
第一張圖片,圖片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
}
}
AssessmentSummaryView XAML代碼如下:
<ListView x:Name="lstvSummary1" Grid.Row="2" ItemsSource="{Binding Path=DataContext.AssessmentSummaryList, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type UserControl}}}">
<ListView.View>
<GridView ColumnHeaderContainerStyle="{StaticResource myHeaderStyle}">
<GridViewColumn DisplayMemberBinding="{Binding Path=Title}" Width="200">
<GridViewColumnHeader Content="Design Element" />
</GridViewColumn>
<GridViewColumn DisplayMemberBinding="{Binding Path=Question}" Width="400">
<GridViewColumnHeader Content="Question" />
</GridViewColumn>
<GridViewColumn DisplayMemberBinding="{Binding Path=SelectedOption}" Width="300">
<GridViewColumnHeader Content="Response" />
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
AssessmentSummaryView代碼隱藏如下:
public partial class AssessmentSummaryView : UserControl
{
public AssessmentSummaryView()
{
InitializeComponent();
}
}
對我的工作,項目列表是否出現?如果不是,那麼它很可能沒有將usercontrol的datacontext綁定到vm – dnr3
@ dnr3:我發佈的代碼正是我在應用程序中的樣子。我編輯了這個問題,在調試模式下包含列表內容的圖像,並在屏幕上顯示最終輸出。 GridViewColumn沒有從列表中獲取內容。 – user3390374
嗯,是的,你已經得到的名單,不知道這裏發生了什麼,它顯示了我的物業價值 – dnr3