silverlight MVVM视图中的视图

silverlight MVVM视图中的视图,mvvm,Mvvm,我正在开发一个小的训练应用程序,遇到了在另一个视图中显示视图的问题 我有一个workoutsummary视图和一个支持workoutsummary视图模型。在“训练摘要”视图中,我想显示SingleExerciseView项目列表。每个SingleExerciseView都有一个支持SingleExerciseView模型,该模型显示名称和练习以及一个observedcollection即一组练习和一对重量/重复 简化代码: public class ExerciseSummaryViewMod

我正在开发一个小的训练应用程序,遇到了在另一个视图中显示视图的问题

我有一个
workoutsummary视图
和一个支持
workoutsummary视图模型
。在“训练摘要”视图中,我想显示
SingleExerciseView
项目列表。每个
SingleExerciseView
都有一个支持
SingleExerciseView模型
,该模型显示名称和练习以及一个
observedcollection
即一组练习和一对重量/重复

简化代码:

public class ExerciseSummaryViewModel : ViewModelBase
{
    public ExerciseSummaryViewModel()
    {
       _workout = DB.GetWorkout();

        foreach (Exercise ex in _workout.Exercises)
            ExerciseVMs.Add(new SingleExerciseViewModel(ex));

    }
    public ObservableCollection<SingleExerciseViewModel> ExerciseVms { get; private set; }
}

 //Code for singleExerciseVM

public class SingleExerciseViewModel : ViewModelBase
{

    public SingleExerciseViewModel(Exercise exercise)
    {
        Name = exercise.Name;
        Sets = exercise.Sets;                        
    }

    public string Name { get; set; }

    public ObservableCollection<Set> Sets { get; set; }
}
public类ExerciseSummaryViewModel:ViewModelBase
{
公共练习摘要视图模型()
{
_workout=DB.GetWorkout();
foreach(训练中的训练)
Add(新的SingleExecuteViewModel(ex));
}
公共可观测集合ExerciseVms{get;private set;}
}
//singleExerciseVM的代码
公共类SingleExecuteViewModel:ViewModelBase
{
公共单一练习视图模型(练习)
{
Name=exercise.Name;
集合=练习。集合;
}
公共字符串名称{get;set;}
公共可观测集合{get;set;}
}
我的问题是,我不确定如何从这里开始显示我的SingleExerciseViewModels。我确实尝试将xaml中SingleExerciseView的dataContext设置为我的SEVM,但仍然不起作用

//XAML for ExerciseSummaryView
<ListBox Height="496" Width="412" ItemsSource="{Binding ExerciseVms}">
    <ListBox.ItemTemplate>
        <DataTemplate>
             <local:SingleExerciseView />
        </DataTemplate>
    </ListBox.ItemTemplate>                                                         
</ListBox>
//ExerciseSummaryView的XAML

您的问题是您正在将SingleExerciseViewModels聚合到一个集合中,但它们没有附加到视图中!那是行不通的

每个SingleExecuteViewModel都需要附加到SingleExecuteView。然后,这些视图中的每一个都需要绑定到ExerciseSummaryView上显示它们的控件(例如ListView,因为它可以显示自定义用户控件)