Silverlight 行为中的 AssociatedObject.FindName OnAttached 方法返回 null
我正在制作 Silverlight 行为,以允许通过包含的“拖动手柄”元素(而不是整个可拖动的元素)拖动元素。把它想象成一个窗口标题栏。
在我调用的 OnAttached 方法中: AssociatedObject.FindName(DragHandle) 但这返回 null。
然后我尝试处理 AssociatedObject 的 Loaded 事件并在那里运行我的代码,但我仍然返回 null。
我是否误解了 FindName 的功能? AssociatedObject 位于 ItemsControl 中(我想要一个可拖动元素的集合)。那么是否存在某种名称范围问题?
I'm making a Silverlight behavior to enable dragging an element by a contained "drag handle" element (rather than the whole element being draggable). Think of it like a window title bar.
In the OnAttached method I am calling: AssociatedObject.FindName(DragHandle)
but this is returning null.
I then tried handling the AssociatedObject's Loaded event and running my code there, but I still get a null returned.
Am I misunderstanding what FindName is able to do? The AssociatedObject is in an ItemsControl (I want a collection of draggable elements). So is there some kind of namescope problem?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,这听起来像是名称范围问题。 有关 XAML 名称范围的 MSDN 文档介绍了如何名称空间是为模板和项目控件定义的。您是否为 ItemsControl 中的项目使用模板?
您可能只需要使用类似这样的方法递归地遍历可视化树即可按名称找到正确的元素:
Yes, it sounds like a namescope problem. The MSDN documentation on XAML namescopes goes over how namesopes are defined for templates and item controls. Are you using a template for the items in your ItemsControl?
You may just have to walk the visual tree recursively with something like this to find the correct element by name: