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

时间:2010-06-30 02:35:12

标签: wpf focus focusmanager

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

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

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

干杯,
Berryl

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

UPDATE 这是约什史密斯最近的nifty post,它解决了这里意图的部分内容;能够通过ViewModel控制焦点。

2 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

好吧,可能有其他方法可以做到这一点,但因为我在我的问题中提到的Josh Smith solution使用了数据绑定框架本身,所以与MVVM一起使用是没有道理的。不要乱视视觉树或试图围绕嵌套控件转动你的想法 - 简单,优雅,最好的工作!

BH