使用代码我可以获得内容演示者.我想在其中找到第一个文本框并相应地设置焦点.
Dim obj = TerritoryListViewer.ItemContainerGenerator.ContainerFromItem(myModel)
Run Code Online (Sandbox Code Playgroud)
alp*_*use 28
您可以使用VisualTreeHelper静态类来抓取控件树.这是如何在c#中完成的(抱歉,我是VB阅读障碍者))
T FindFirstChild<T>(FrameworkElement element) where T: FrameworkElement
{
int childrenCount = VisualTreeHelper.GetChildrenCount(element);
var children = new FrameworkElement[childrenCount];
for (int i = 0; i < childrenCount; i++)
{
var child = VisualTreeHelper.GetChild(element, i) as FrameworkElement;
children[i] = child;
if (child is T)
return (T)child;
}
for (int i = 0; i < childrenCount; i++)
if (children[i] != null)
{
var subChild = FindFirstChild<T>(children[i]);
if (subChild != null)
return subChild;
}
return null;
}
Run Code Online (Sandbox Code Playgroud)
ContentPresenter有唯一的孩子.你只需要孩子
VisualTreeHelper.GetChild(yourContentPresenterObj, 0);
Run Code Online (Sandbox Code Playgroud)
如果您需要更深入 - 首先找到TextBox,那么,是的,您使用@ alpha-mouse建议的更全面的方法.
| 归档时间: |
|
| 查看次数: |
12197 次 |
| 最近记录: |