私は小さなワークアウトアプリケーションで作業しており、別のビュー内にビューを表示する問題に取り掛かりました。silverlight MVVMビュー内のビュー
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を表示するために取得するには、ここから行くのかわからないです。私はxaml内のSingleExerciseViewのdataContextをSEVMに設定しようとしましたが、それでも動作しません。
//XAML for ExerciseSummaryView
<ListBox Height="496" Width="412" ItemsSource="{Binding ExerciseVms}">
<ListBox.ItemTemplate>
<DataTemplate>
<local:SingleExerciseView />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>