複数のテキストボックスを持つグリッドがあります。ユーザーがフォーカスする可能性のあるアクションに応じて、テキスト ボックスの 1 つに変更する必要があります。私の現在のソリューションでは、ViewModel の文字列プロパティと xaml のデータ トリガーを使用してフォーカスを変更しています。それはうまく機能しますが、これを達成するのはかなり回りくどい方法のように思われるので、より明確な方法で行うことができるかどうか疑問に思っていましたか?
<Grid.Style>
<Style TargetType="Grid">
<Style.Triggers>
<DataTrigger Binding="{Binding FocusedItem}" Value="number">
<Setter Property="FocusManager.FocusedElement" Value="{Binding ElementName=number}"/>
</DataTrigger>
<DataTrigger Binding="{Binding FocusedItem}" Value="name">
<Setter Property="FocusManager.FocusedElement" Value="{Binding ElementName=name}"/>
</DataTrigger>
<DataTrigger Binding="{Binding FocusedItem}" Value="id">
<Setter Property="FocusManager.FocusedElement" Value="{Binding ElementName=id}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Grid.Style>
ご覧のとおり、プロパティの値と要素の名前は同じなので、要素ごとに 1 つのトリガーを使用するのではなく、単一のトリガーでこれを実行したいと考えています。
多分誰かがよりクリーンな方法を思い付くことができますか?
前もって感謝します