У меня есть следующий код, который заполняет мой пользовательский элемент управления в виде строк и столбцов. Пользовательский элемент управления, который заполняется, содержит кнопку, ссылки, текстовое поле и т. Д. Когда определенная кнопка нажата на конкретном элементе управления пользователя в определенной строке/столбце, мне нужно знать, для какой кнопки User Control была нажата кнопка. Вот XAML, который заселение пользовательских элементов управления в строки и столбцыПолучение выбранного элемента в ItemsControl
<ItemsControl ItemsSource="{Binding Templates}" Width="{Binding GridWidth}">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<UniformGrid Columns="{Binding NumColumns}" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemContainerStyle>
<Style>
<Setter Property="Grid.Column" Value="{Binding ColumnIndex}" />
<Setter Property="Grid.Row" Value="{Binding RowIndex}" />
</Style>
</ItemsControl.ItemContainerStyle>
<ItemsControl.ItemTemplate>
</ItemsControl>
Шаблоны в основном коллекция UserControls, которые в настоящее время проживают в строк/столбцов. Предпочтительно, я хочу сделать это в ViewModel, но решение в коде позади пока будет работать.
Элемент 'ItemsControl' не отслеживает выбранный элемент. Если вам нужно это поведение, используйте что-то вроде «ListBox» и перезапишите шаблон, например [this] (http://stackoverflow.com/a/9069382/302677) – Rachel