首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >让FocusManager等到绑定完成?

让FocusManager等到绑定完成?
EN

Stack Overflow用户
提问于 2016-02-16 20:22:30
回答 1查看 72关注 0票数 2

我试图让WPF应用程序将其初始焦点设置为网格中的TextBox。该TextBox将其Text属性数据库设置为视图控制器,该视图控制器可能已经设置了文本,也可能没有。当设置了这个焦点,并且TextBox已经有了现有文本时,我希望选择该文本,这样您就可以通过键入立即编辑它。

我可以通过在Focus()事件的Loaded事件中执行一个Window调用来实现这一点,如下所示:

代码语言:javascript
复制
public void HighlightTextOnFocus(object sender, RoutedEventArgs e)
{
    var senderBox = (TextBox)sender;
    senderBox.SelectionStart = 0;
    senderBox.SelectionLength = senderBox.Text.Length;
}

private void EditEntryView_OnLoaded(object sender, RoutedEventArgs e)
{
    TotalHoursBox.Focus();
}

我的问题是,如何在不使用代码隐藏的情况下完成相同的任务,而不是在XAML中这样做。我尝试过使用FocusManager,但它试图在绑定完成之前设置焦点,导致我的HighlightTextOnFocus方法在之前被称为--文本实际上是设置的,什么也不做。

是否有一种方法可以强迫FocusManager等待数据绑定完成?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-17 12:34:18

为此,可以使用附加行为模式。它将看起来像:

<TextBox Text="{Binding Text}" local:SelectAllTextBoxBehavior.IsEnabled="True" />

SelectAllTextBoxBehavior代码可用这里

或使用混合SDK,详细信息这里

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35442263

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档