当DatePicker / ListView通过Tab键获得焦点时,突出显示关联的Label

时间:2012-06-21 16:49:53

标签: .net wpf xaml label

当我在WPF应用程序中从一个字段到另一个字段时,我突出显示与每个字段关联的标签。这适用于ComboBox和TextBox项目,但不适用于ListViews或DatePickers。我正在使用标签标签的绑定部分中的IsFocused路径部分(参见下面的代码)。

<Label
    Style="{StaticResource styleLabelTextBlockLeft}"
    Target="{Binding ElementName=dpBrthDt}"
    Tag="{Binding ElementName=dpBrthDt, Path=(IsFocused)}"
>
    <TextBlock 
         TextWrapping="Wrap">When were you born?
    </TextBlock>                                  
</Label>
<DatePicker
    x:Name="dpBrthDt"
    HorizontalAlignment="Left"
    SelectedDate="{Binding
        Path=CurrentEntity.BrthDt, 
        Mode=TwoWay, 
        ValidatesOnDataErrors=True, 
        NotifyOnValidationError=True
    }"
    Width="115"
/>

为什么引用IsFocused的标签的Binding部分可以在TextBoxes / ComboBoxes而不是DatePickers / ListViews上运行?感谢。

1 个答案:

答案 0 :(得分:0)

可能是因为ListViewsDatePickers内部包含多个元素,因此IsFocused元素是控件内部的元素,而不是实际控件本身。

使用属性IsKeyboardFocusWithin代替IsFocused,它应该可以正常工作