WPF, CheckListBox, Tastaturbedienung

06/07/2009 - 17:40 von Markus Springweiler | Report spam
Hallo,

in WPF ist ja rein optisch fast nichts unmöglich, eine CheckBox in Kürze
innerhalb einer ListBox, ListView, TreeView, sonstwo verbaut.

Aber wie implementiere ich am effizientesten eine Tastaturbedienung, die
sich wie herkömmliche Win32-Controls verhàlt?:
Wàhrend man bei Win32-CheckListBox mit Cursor-Down + Space auskommt,
benötigt man bei WPF ein Tab dazwischen.

Kann man das mittels (mir unbekannten) attachable Properties irgendwie
lösen, oder muss ich mit selbstgebastelten KeyDown-Ereignissen rumeiern?
(Ich erfinde ungern grundlegende GUI-Paradigmen neu, meistens vergisst man
dabei sowieso etwas, was die User dann vor den Kopf stößt.)

Wenn ich soetwas "gestörtes" wie nachfolgend mache, funktioniert zwar die
Tastaturbedienung einwandfrei, aber die ListBox hat keine
SelectedItem-Selektion mehr, und ausserdem wüßte gerade nicht, wie ich das
auf dynamisch gebundene Daten umsetzen sollte:

<ListBox>
<ListBoxItem FocusManager.FocusedElement="{Binding ElementName=cb1}">
<CheckBox Content="cb1" x:Name="cb1" /></ListBoxItem>
<ListBoxItem FocusManager.FocusedElement="{Binding ElementName=cb2}">
<CheckBox Content="cb2" x:Name="cb2" /></ListBoxItem>
<ListBoxItem FocusManager.FocusedElement="{Binding ElementName=cb3}">
<CheckBox Content="cb3" x:Name="cb3" /></ListBoxItem>
<ListBoxItem FocusManager.FocusedElement="{Binding ElementName=cb4}">
<CheckBox Content="cb4" x:Name="cb4" /></ListBoxItem>
</ListBox>

/\/\arkus.
 

Lesen sie die antworten

#1 Elmar Boye
08/07/2009 - 12:01 | Warnen spam
Hallo Markus,

Markus Springweiler schrieb:
Aber wie implementiere ich am effizientesten eine Tastaturbedienung, die
sich wie herkömmliche Win32-Controls verhàlt?:
Wàhrend man bei Win32-CheckListBox mit Cursor-Down + Space auskommt,
benötigt man bei WPF ein Tab dazwischen.



Verwende ein DataTemplate um die CheckBox im Element darzustellen.
Dann brauchst Du keinen zusàtzlichen Code.

Eine Fundstelle (es gibt reichlich mehr):
http://www.techdreams.org/microsoft...using-xaml

Gruß Elmar

Ähnliche fragen