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,因为它可以显示自定义用户控件)