Autor Beitrag
C#
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 561
Erhaltene Danke: 65

Windows 10, Kubuntu, Android
Visual Studio 2017, C#, C++/CLI, C++/CX, C++, F#, R, Python
BeitragVerfasst: Mi 17.08.16 11:04 
Hey @ll,

ich habe eine WPF Page in der Ich einige KeyBindings definiere (direkt in den Ressourcen der Page)
ausblenden XML-Daten
1:
2:
3:
4:
5:
    <KeyBinding Key="D1" Command="{StaticResource Commands.SelectDragTool}"/>
    <KeyBinding Key="D2" Command="{StaticResource Commands.SelectPenTool}"/>
    <KeyBinding Key="D3" Command="{StaticResource Commands.SelectRegionTool}"/>
    <KeyBinding Key="D4" Command="{StaticResource Commands.SelectRectTool}"/>
    <KeyBinding Key="D5" Command="{StaticResource Commands.SelectFillTool}"/>


Wie ihr sehen könnt, habe ich die Keys 1, 2, 3, 4 und 5 gebunden. Mein Problem nun: manchmal bekommt die Page eine TextBox als verschachteltes Kindelement. Wenn ich dann den Fokus in der TextBox habe und ich einen der gebundenen Keys verwende, wird natürlich auch das Command ausgeführt, was ich aber verhindern muss. Ich dachte wenn ich in dem UserControl, welches die TextBox enthält und logischerweise auch ein Kind der Page ist, die KeyBindings auf NotACommand binde, ist mein Problem gelöst:
ausblenden XML-Daten
1:
2:
3:
4:
5:
            <KeyBinding Key="D1" Command="NotACommand" />
            <KeyBinding Key="D2" Command="NotACommand" />
            <KeyBinding Key="D3" Command="NotACommand" />
            <KeyBinding Key="D4" Command="NotACommand" />
            <KeyBinding Key="D5" Command="NotACommand" />

Aber Pustekuchen...

Weiß jemand wie ich die Commands in einem bestimmten Kindelement unterdrücken kann (bzw. eigentlich nur die KeyBindings dazu)?

_________________
Der längste Typ-Name im .NET-Framework ist: ListViewVirtualItemsSelectionRangeChangedEventHandler
Frühlingsrolle
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: Mi 17.08.16 21:15 
- Nachträglich durch die Entwickler-Ecke gelöscht -
C# Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starofftopic star
Beiträge: 561
Erhaltene Danke: 65

Windows 10, Kubuntu, Android
Visual Studio 2017, C#, C++/CLI, C++/CX, C++, F#, R, Python
BeitragVerfasst: Sa 20.08.16 16:05 
Hey,

Naja das hilft mir nicht viel. Ich weiß auch dass es CanExecute gibt aber erstens hab ich ein RoutedCommand statt einem selbst implementierten Command und zweitens will ich dafür kein C# code schreiben müssen.

Ich hab mal irgendwo gelesen, dass KeyBindings einfach mit dem NotACommand Command überschrieben werden können, wenn sie außer Kraft gesetzt werden sollen (z.B. dass undo Command bei TextBoxen), aber hier funktioniert dass aus irgendwelchen Gründen nicht...

_________________
Der längste Typ-Name im .NET-Framework ist: ListViewVirtualItemsSelectionRangeChangedEventHandler