gpt4 book ai didi

wpf - Caliburn Micro,从 MV 设置焦点

转载 作者:行者123 更新时间:2023-12-03 10:16:15 24 4
gpt4 key购买 nike

如何将 UI 元素(如 textBox)焦点绑定(bind)到 View 模型?

我有带有枢轴控制的 Windows Phone 应用程序。基于事件的数据透视项目,我想将焦点设置到某个文本框。此外,当用户将文本插入文本框并按 Enter 键时,我想将焦点设置在文本框以外的其他位置以关闭虚拟键盘。

如何使用 Caliburn Micro 执行此操作,查看模型?

最佳答案

我不认为你可以通过 C.M. 做到这一点。我会写这样的行为:

public class BindableFocusBehavior : Behavior<Control>
{
public static readonly DependencyProperty HasFocusProperty =
DependencyProperty.Register("HasFocus", typeof(bool), typeof(BindableFocusBehavior), new PropertyMetadata(default(bool), HasFocusUpdated));

private static void HasFocusUpdated(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
((BindableFocusBehavior)d).SetFocus();
}

public bool HasFocus
{
get { return (bool)GetValue(HasFocusProperty); }
set { SetValue(HasFocusProperty, value); }
}

private void SetFocus()
{
if (HasFocus)
{
AssociatedObject.Focus();
}
}
}

像这样使用它:
<TextBox>
<i:Interaction.Behaviors>
<wpfApplication2:BindableFocusBehavior HasFocus="{Binding SetFocus}"/>
</i:Interaction.Behaviors>
</TextBox>

希望能帮助到你!

关于wpf - Caliburn Micro,从 MV 设置焦点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20380910/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com