0

我正在使用以下代码将该RichTextBlock.Visibility属性绑定到另一个控件的FocusState属性。

 <RichTextBlock FontFamily="Segoe UI" FontSize="22" FontWeight="Light" 
                               Foreground="{StaticResource SwiftLightTextBrush}" 
                               Visibility="{Binding ElementName=ProfessionalHeadlineInput, Path=FocusState, Converter={StaticResource FocusStateToVisibilityConverter}}" >

的实现 FocusStateToVisibilityConverter.Convert如下:

public object Convert(object value, Type targetType, object parameter, string language)
{
    var focusState = (FocusState)value;

    return focusState == FocusState.Keyboard || focusState == FocusState.Pointer || focusState == FocusState.Programmatic ? Visibility.Visible : Visibility.Collapsed;
}

这可能是一个新手问题,但是当我使用鼠标或选项卡导航“聚焦”到目标元素(ProfessionalHeadlineInput是一个元素)时,为什么不应用绑定?TextBox

我已将断点插入到Convert方法中,但是当我单击或“切换”到ProfessionalHeadlineInputTextBox 时,它不会被调用。

NB重要的部分 - 我的项目是一个 Windows 8 Metro 风格的应用程序。

4

2 回答 2

1

确保FocusStateDP,确保它确实改变了我在这里看到的唯一原因 -FocusState可能不会改变,其他一切看起来都很好。此外,尝试明确设置Mode=OneWayUpdateSourceTrigger=PropertyChanged

于 2012-05-15T15:38:56.477 回答
1

我在微软论坛上得到了 Matt Small 的回答

好的 - 这实际上是 FocusState 的一个错误 - 它没有更新值。我在我们的数据库中提交了一个错误。谢谢你提出这个问题。

于 2012-05-20T11:01:50.237 回答