根据另一个用户控件中的操作在一个用户控件中设置焦点

发布于 2024-09-07 18:28:27 字数 660 浏览 3 评论 0原文

一个用户控件是一个列表框,其中列表中的每个项目都有一个按钮。单击该按钮时,有关该项目的可编辑详细信息将显示在另一个用户控件中。细节知道要显示什么以及如何通过数据绑定到视图模型来显示它。两个用户控件都位于同一窗口中。

我在这里发现棘手的问题是将焦点设置到第一个非只读文本框。

我在这里看到了一种解决方案 涉及编写标记扩展。不过现在它也有点旧了,我想知道是否有更简单的方法来做到这一点。

干杯,
Berryl

我应该指出,作为将焦点移至文本框的触发器的 EditCommand 位于绑定到列表用户控件的视图模型中。不过,我不介意为用户界面问题保留代码。

更新 这是最近的一篇精彩帖子乔什·史密斯 (Josh Smith) 阐述了这里的部分意图;能够通过 ViewModel 控制焦点。

One user control is a list box where each item in the list has a button. When the button is clicked, editable detail about the item is displayed in another user control. The detail knows what to display and how to display it via data binding to a view model. Both user controls are in the same window.

The problem I am finding tricky here is to set the focus to the first non read only text box.

I have seen one solution here that involves writing a markup extension. It's also a bit old now though, and I am wondering if there is a simpler way to do this.

Cheers,
Berryl

I should have pointed out that the EditCommand that is the trigger for getting the focus to the textbox is in a view model bound to the listing user control. I don't mind having code behind for ui concerns though.

UPDATE
Here's a recent nifty post by Josh Smith that addresses part of what the intention is here; to be able to control focus through the ViewModel.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

红ご颜醉 2024-09-14 18:28:27

您可以使用 VisualTreeHelper 查找特定的文本框控件并尝试 textboxcontrol.Focus()

You can use VisualTreeHelper to find the specific textbox control and try textboxcontrol.Focus()

尾戒 2024-09-14 18:28:27

好吧,可能还有其他方法可以做到这一点,但是因为 Josh Smith 解决方案 我在问题中提到使用数据绑定框架本身,它与 MVVM 一起使用是理所当然的。无需摆弄视觉树或尝试围绕嵌套控件扭曲您的思维 - 简单、优雅,最重要的是它有效!

乙肝

Alright, there may be other ways to do this but because the Josh Smith solution I alluded to in my question uses the Data Binding framework itself, it is a no brainer for use with MVVM. No mucking around with the visual tree or trying to twist your mind around nested controls - simple, elegant, and best of all it works!

BH

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文