Ho il seguente codice che popola il mio controllo utente in forma di righe e colonne. Il controllo utente che viene popolato contiene Button, collegamenti, casella di testo, ecc. Quando un determinato tasto viene premuto su un particolare controllo utente in una particolare riga/colonna, ho bisogno di sapere per quale controllo utente è stato premuto quel pulsante. Ecco l'XAML popola i controlli utente in righe e colonneOttenere l'elemento selezionato in 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>
Modelli è fondamentalmente un insieme di controlli utente che vengono popolate in righe/colonne. Preferibilmente voglio farlo in ViewModel ma la soluzione nel codice dietro per ora funzionerà pure.
Un 'ItemsControl' non tiene traccia dell'elemento selezionato. Se vuoi questo comportamento, usa qualcosa come un 'ListBox' e sovrascrivi il modello, come [this] (http://stackoverflow.com/a/9069382/302677) – Rachel