Всем доброго времени суток! Крик души! Осталось реализовать две фичи, но бьюсь над ними уже пару дней.
Буду приводить примеры, на примере тестового проекта, чтобы не грузить лишними настройками и строками кода.
Имеется у меня ObservableCollection. Я подписываю ее на ItemControl.
<ItemsControl ItemsSource="{Binding Path=Collection}">
Далее идет шаблон этого ItemControl
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="auto"></ColumnDefinition>
<ColumnDefinition Width="auto"></ColumnDefinition>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Margin="5" Text="{Binding Number}"></TextBlock>
<TextBlock Grid.Column="1" Margin="5" Text="{Binding Name}"></TextBlock>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
Вопрос в следующем, как подписать команду на клик, по какому-нибудь из элементов ItemControla, и как определить по какому именно элементу был клик.
TestClacc - это простейший класс с двумя полями: Number и Name.
Используйте ListBox вместо ItemsControl, в нём есть встроенное понятие выделенного элемента.
Ваш код будет выглядеть так:
<ListBox ItemsSource="{Binding Collection}" SelectedItem="{Binding SelectedTestClass}">
<ListBox.ItemTemplate>
...
</ListBox.ItemTemplate>
</ListView>
<!-- тут должны отобразиться подробности выделенного элемента -->
<Grid DataContext="{Binding SelectedTestClass}">
...
</Grid>
Сборка персонального компьютера от Artline: умный выбор для современных пользователей