Я работаю над небольшим приложением для тренировки и сталкиваюсь с проблемой отображения представления в другом представлении.
У меня есть WorkoutSummaryView
с поддержкой WorkoutSummaryViewModel
. В сводном виде тренировки я хочу отобразить список SingleExerciseView
элементов. Каждый SingleExerciseView
имеет поддержку SingleExerciseViewModel
, которая отображает название и упражнение, и ObservableCollection<Set>
, то есть наборы упражнений с парой вес / повторение.
Упрощенный код:
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; }
}
Моя проблема в том, что я не уверен, как отсюда получить мои SingleExerciseViewModels для отображения. Я попытался установить dataContext для SingleExerciseView в xaml для моего SEVM, но это все еще не работает.
//XAML for ExerciseSummaryView
<ListBox Height="496" Width="412" ItemsSource="{Binding ExerciseVms}">
<ListBox.ItemTemplate>
<DataTemplate>
<local:SingleExerciseView />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>