为什么你需要知道他们是否有焦点?
焦点是特定于视图的功能,所以我希望您的视图模型不关心它。
通常,如果我基于控制焦点做某事,它是针对特定于视图的操作,例如 DataTrigger,在这种情况下,我使用代码隐藏或触发器
示例代码
if (tb1.IsFocused|| tb2.IsFocused || tb3.IsFocused)
{
DoSomething();
}
触发示例
<Style.Triggers>
<DataTrigger Binding="{Binding IsFocused, ElementName=tb1}" Value="True">
<Setter Property="BorderBrush" Value="Red" />
</DataTrigger>
<DataTrigger Binding="{Binding IsFocused, ElementName=tb2}" Value="True">
<Setter Property="BorderBrush" Value="Red" />
</DataTrigger>
<DataTrigger Binding="{Binding IsFocused, ElementName=tb3}" Value="True">
<Setter Property="BorderBrush" Value="Red" />
</DataTrigger>
</Style.Triggers>