0

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

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

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

干杯,
贝里尔

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

更新 这是 Josh Smith 最近发表的一篇漂亮的帖子,它解决了这里的部分意图;能够通过 ViewModel 控制焦点。

4

2 回答 2

1

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

于 2010-06-30T05:11:03.293 回答
0

好吧,可能还有其他方法可以做到这一点,但是因为我在我的问题中提到的Josh Smith 解决方案使用了数据绑定框架本身,所以它与 MVVM 一起使用是不费吹灰之力的。不要乱搞视觉树或试图围绕嵌套控件扭曲你的想法 - 简单,优雅,最重要的是它的工作原理!

BH

于 2010-07-02T00:15:17.323 回答