/ / Fokus in WPF an Datenkontext binden - wpf, Datenbindung, Fokus

Binde den Fokus auf Datenkontext in WPF - wpf, Datenbindung, Fokus

Ich möchte den aktuellen Fokus an den bindenDatenkontext. Mein Menüsystem verfügt über ein Ansichtsmodell, das eine Liste von ButtonViewModels als Datenkontext enthält. Wie würde ich vorgehen, wenn die fokussierte Schaltfläche vom Datenkontext bestimmt würde?

Es gibt einen FocusManager.FocusedElement, aber dieser Verweis auf ein Steuerelement und die Idee eines ViewModel ist nicht von der Implementierung des View abhängig ...

Antworten:

3 für die Antwort № 1

Ich habe versucht, einen DataTrigger im zu platzieren Button Stil, der an eine Eigenschaft namens bindet IsFocused in dem ButtonViewModel und im Setter Bind FocusManager.FocusedElement auf die Schaltfläche, auf der IsFocused auf true gesetzt ist. Dies sollte es Ihnen ermöglichen, den Fokus direkt von der zu steuern ButtonViewModel

<ItemsControl ItemsSource="{Binding ButtonViewModels}">
<ItemsControl.Resources>
<Style x:Key="FocusBindingStyle" TargetType="Button">
<Style.Triggers>
<DataTrigger Binding="{Binding IsFocused}" Value="True">
<Setter Property="FocusManager.FocusedElement"
Value="{Binding RelativeSource={RelativeSource Self}}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</ItemsControl.Resources>
<ItemsControl.ItemTemplate>
<DataTemplate>
<Button Content="Test" Style="{StaticResource FocusBindingStyle}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>