Я смотрю на этот материал MVVM и сталкиваюсь с проблемой.
Ситуация довольно проста.
У меня есть следующий код на моей странице index.xaml
<Grid>
<ItemsControl ItemsSource="{Binding}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<view:MovieView ></view:MovieView>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
и в моем index.xaml.cs
...
InitializeComponent ();
base.DataContext = new MovieViewModel (ent.Movies.ToList ());
....
и вот моя MoveViewModel
public class MovieViewModel
{
readonly List<Movies> _m;
public ICommand TestCommand { get; set; }
public MovieViewModel(List<Movies> m)
{
this.TestCommand = new TestCommand(this);
_m = m;
}
public List<Movies> lm
{
get
{
return _m;
}
}
}
наконец
вот мой контроль xaml MovieView
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto"></ColumnDefinition>
<ColumnDefinition Width="Auto"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label VerticalAlignment="Center" Grid.Row="0" Grid.Column="0">Title :</Label><TextBlock VerticalAlignment="Center" Grid.Row="0" Grid.Column="1" Text="{Binding Title}"></TextBlock>
<Label VerticalAlignment="Center" Grid.Row="1" Grid.Column="0">Director :</Label><TextBlock VerticalAlignment="Center" Grid.Row="1" Grid.Column="1" Text="{Binding Director}"></TextBlock>
<Button Grid.Row="2" Height="20" Command="{Binding Path=TestCommand}" Content="Edit" Margin="0,4,5,4" VerticalAlignment="Stretch" FontSize="10"/>
</Grid>
Итак, у меня проблема в том, что если я установлю ItemsSource в Binding
ничего не получается
если я установлю ItemsSource = "{Binding lm}"
он заполняет мой itemsControl, но команда (Command = "{Binding Path = TestCommand}") не работает.
Конечно, это не работает, потому что TestCommand не принадлежит моему объекту сущности Movies.
Итак, наконец, мой вопрос,
что мне нужно передать в ItemsControl, чтобы он работал?
Спасибо заранее