Tut mir leid, wenn das zu primitiv ist, aber ich suchte und fand nichts, um mein Problem zu lösen.Wie Hinzufügen von Mausereignis zu benutzerdefinierten Vorlage ListBox Element?
Ich habe diese Control Template für meine Listenfeld Artikel:
<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>
Und dieser Code machen Datenquelle für das Listenfeld:
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;
}
Meine Frage ist, wie kann ich per Mausklick Event hinzufügen oder ausgewähltes Ereignis zwei meine Listenelemente?
Sie nicht außer Kraft setzen müssen ListBoxItem.Template, um benutzerdefinierte Felder anzuzeigen. Verwenden Sie einfach die ItemTemplate-Eigenschaft von ListBox. ControlTemplate mit Bindings zu DataContext (wie '{Binding Path = NumbOfBook}" ') ist kaum wieder verwendbar – ASh
welche Mausereignisse und zu welchem Zweck möchten Sie haben? erwägen, die SelectedItem-Eigenschaft mit dem SelectedItemChanged-Ereignis zu verwenden oder InputBindings zu berücksichtigen. – ASh
Entschuldigung, ich habe meine letzte Fragezeile nach dem gewünschten Ereignis bearbeitet. ausgewählt oder Mausklick-Ereignis – hemarn