Ich versuche, ein benutzerdefiniertes ItemsControl zu erstellen, indem ich direkt von ItemsControl erwerbe (WPF/Silverlight, verwende ich die gleiche Codebasis für beide). Ich habe eine Item-Klasse dafür erstellt, indem ich von ContentControl geerbt habe. Ich möchte die IsSelected-Eigenschaft für die Item-Klasse erstellen. Ich habe die ListBoxItem-Klasse wiedergegeben, bin mir aber nicht ganz im Klaren darüber, wie die IsSelected-Eigenschaft festgelegt wird. Alle Vorschläge/Hinweise werden sehr hilfreich sein.Wie erstelle ich die IsSelected-Eigenschaft für benutzerdefinierte itemscontrolItem?
1
A
Antwort
1
Wenn Sie eine ItemsControl
ohne ListBox
Funktionen außer wollen, dass es das Konzept der Auswahl intern unterstützt, können Sie ganz einfach eine lookless erstellen ListBox
, die von einem ItemsControl
nicht zu unterscheiden ist. Hier sind die zwei nebeneinander und Sie können den Unterschied nicht unterscheiden. Der einzige Unterschied besteht darin, dass die linke Liste die Auswahl intern unterstützt.
<Grid>
<Grid.Resources>
<x:Array Type="sys:String" x:Key="sampleData">
<sys:String>Red</sys:String>
<sys:String>Green</sys:String>
<sys:String>Blue</sys:String>
</x:Array>
</Grid.Resources>
<UniformGrid Columns="2">
<ItemsControl ItemsSource="{StaticResource sampleData}"/>
<ListBox ItemsSource="{StaticResource sampleData}">
<ListBox.Style>
<Style TargetType="ListBox">
<Setter Property="Focusable" Value="False"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBox">
<ItemsPresenter/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.Style>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="Focusable" Value="False"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<ContentPresenter/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
</UniformGrid>
</Grid>
So ist der beste Rat, wenn Sie Auswahl wollen, stammen aus ListBox
und Stil weg, was Sie über es nicht wollen oder zumindest von Selector
abzuleiten.
Verwandte Themen
- 1. Wie erstelle ich benutzerdefinierte JVM?
- 2. Wie erstelle ich benutzerdefinierte C# -Widgets?
- 3. Wie erstelle ich eine benutzerdefinierte Navigationsleiste wie die BestBuy App?
- 4. Wie erstelle ich eine nggrid benutzerdefinierte Fußzeile
- 5. Wie erstelle ich benutzerdefinierte Interface Builder-Plugins für das iPhone?
- 6. Wie erstelle ich eine benutzerdefinierte Annotation für Klassen und Methoden?
- 7. Wie erstelle ich benutzerdefinierte Tag-Helfer für den Rasierer?
- 8. Wie erstelle ich eine einfache benutzerdefinierte Ansicht?
- 9. Wie erstelle ich eine benutzerdefinierte Schriftart für eine BlackBerry-Anwendung
- 10. Wie erstelle ich benutzerdefinierte Zugriffsfunktion für die Bearbeitung eines Knotentyps in Drupal?
- 11. Wie erstelle ich eine benutzerdefinierte Uhr für die Verwendung in Std :: Chrono-Funktionen?
- 12. Wie erstelle ich eine benutzerdefinierte Palette mit einer benutzerdefinierten Farbe für die Material Design App?
- 13. Wie erstelle ich eine benutzerdefinierte Ansicht oder Steuerung mit Animation für die iOS App?
- 14. Wie erstelle ich ein Numpy Ufunc über benutzerdefinierte Datentypen?
- 15. Wie erstelle ich eine benutzerdefinierte Android-Bibliothek in Android Studio?
- 16. Wie erstelle ich eine drei einfache benutzerdefinierte Fortschrittsanzeige?
- 17. Wie erstelle ich eine benutzerdefinierte Seite curl Core Animation?
- 18. Schienen 3. Wie erstelle ich eine benutzerdefinierte PUT-Aktion?
- 19. Wie erstelle ich benutzerdefinierte Berechtigungen (Benutzerrollen) in Django?
- 20. Wie erstelle ich benutzerdefinierte Schatten in robectric 3.0?
- 21. Rails 4: Wie erstelle ich eine benutzerdefinierte 404-Seite, die die Asset-Pipeline verwendet?
- 22. Wie erstelle ich eine benutzerdefinierte Objekttypklasse in C#?
- 23. Wie erstelle ich eine benutzerdefinierte Wiederherstellung in Beego?
- 24. Wie erstelle ich eine benutzerdefinierte nicht-rechteckige GroupBox?
- 25. Wie erstelle ich meine eigene benutzerdefinierte Gruppe in MediaWiki?
- 26. Wie erstelle ich eine benutzerdefinierte Bibliothek in GNU?
- 27. Wie erstelle ich eine benutzerdefinierte ASPX-Seite in Umbraco?
- 28. Wie erstelle ich eine benutzerdefinierte Tab-Aktivität in Android?
- 29. Wie erstelle ich eine benutzerdefinierte MarkItUp-Vorschauseite in PHP?
- 30. Wie erstelle ich benutzerdefinierte Befehle in Grails 3?
Warum erweitern Sie 'ItemsControl' anstatt' Selector' oder 'ListBox', die bereits ein Auswahlverhalten implementieren? –
Ich stimme Daniel zu. Ich habe noch keinen Grund gefunden, eine benutzerdefinierte Implementierung von ItemsControl zu erstellen. Was ist die erhoffte erweiterte Funktionalität, da es einfach genug sein kann, die Art und Weise zu ändern, in der das Steuerelement durch Templating oder auf andere Weise funktioniert. – CodeWarrior
Wahrscheinlich auf diese Weise: Set SelectedItem (ItemsControl) -> innerhalb der Setter einen Steuercontainer finden -> Set IsSelected. Umgekehrt können Sie das PropertyChanged-Ereignis verwenden. – vorrtex