Désolé si c'est trop primitif mais j'ai cherché et trouvé rien pour résoudre mon problème.Comment ajouter un événement souris à un élément ListBox de modèle personnalisé?
J'ai ce modèle de contrôle pour ma liste article:
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<Grid>
<Border x:Name="outerBorder" BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="0" SnapsToDevicePixels="true">
<Border x:Name="innerBorder" Background="{TemplateBinding Background}" BorderThickness="1" CornerRadius="0" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="true">
<DockPanel LastChildFill="False" >
<StackPanel Orientation="Horizontal" DockPanel.Dock="Left">
<Label x:Name="iconi" Content="#" Foreground="Red"/>
<ContentPresenter Content="{Binding YearClass}" ContentSource="Binding YearClass" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" />
</StackPanel>
<Border x:Name="NumBorder" MinWidth="20" Height="20" DockPanel.Dock="Right" Background="#8395bb" CornerRadius="10" >
<Label x:Name="BookNum" Content="{Binding Path=NumbOfBook}" Foreground="#ffffff" FontSize="10" />
</Border>
</DockPanel>
</Border>
</Border>
</Grid>
Et ce code font la source de données pour la zone de liste:
public void fill_lib()
{
List<YearBook> yeartitles = new List<YearBook>();
yeartitles.Add(new YearBook() { xContent ="One", YearClass = "first year", NumbOfBook = 17, selectlink = "openWind" });
yeartitles.Add(new YearBook() { xContent = "Two", YearClass = "second year", NumbOfBook = 5, selectlink = "showItem" });
yeartitles.Add(new YearBook() { xContent = "three", YearClass = "third year", NumbOfBook = 14, selectlink = "dataTemp" });
middleone.ItemsSource = yeartitles;
}
Ma question est de savoir comment puis-je Ajouter un événement de clic de souris ou l'événement sélectionné deux mes éléments de liste?
vous n'avez pas besoin de passer outre ListBoxItem.Template pour afficher les champs personnalisés. Utilisez simplement la propriété ItemTemplate de ListBox. ControlTemplate avec des liaisons à DataContext (comme '" {Binding Path = NumbOfBook} "') est difficilement réutilisable – ASh
quel événement souris et dans quel but voulez-vous avoir? pensez à utiliser la propriété SelectedItem avec l'événement SelectedItemChanged ou considérez InputBindings – ASh
Désolé, j'ai modifié ma dernière ligne de question sur l'événement que je souhaite. événement sélectionné ou clic de souris – hemarn