Обработка нажатия по ItemControl и определение по какому именно элементу был совершен клик. MVVM

288
08 марта 2017, 17:04

Всем доброго времени суток! Крик души! Осталось реализовать две фичи, но бьюсь над ними уже пару дней.

Буду приводить примеры, на примере тестового проекта, чтобы не грузить лишними настройками и строками кода.

Имеется у меня 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.

Answer 1

Используйте ListBox вместо ItemsControl, в нём есть встроенное понятие выделенного элемента.

Ваш код будет выглядеть так:

<ListBox ItemsSource="{Binding Collection}" SelectedItem="{Binding SelectedTestClass}">
    <ListBox.ItemTemplate>
        ...
    </ListBox.ItemTemplate>
</ListView>
<!-- тут должны отобразиться подробности выделенного элемента -->
<Grid DataContext="{Binding SelectedTestClass}">
    ...
</Grid>
READ ALSO
Как можно параллельно использовать WebClient.DownloadString?

Как можно параллельно использовать WebClient.DownloadString?

Есть коллекция ссылок и нужно скачать файлы по данным ссылкам

200
Entity Framework некорректно обновляется запись

Entity Framework некорректно обновляется запись

Уже задавал вопрос здесьОн до сих пор актуален

275
c# кастомный компонент

c# кастомный компонент

Встречали ли вы кастомный компонент "трекбар" с несколькими ползунками, каждый из которых задает некий рендж значений?

287