gpt4 book ai didi

silverlight - UserControl子控件和FindName

转载 作者:行者123 更新时间:2023-12-02 04:12:01 24 4
gpt4 key购买 nike

我有一个Silverlight UserControl,它使用ContentPropertyAttribute公开其子面板之一的Children属性。这使我可以将子控件添加到页面上的面板中:

<local:MyUserControl>
<TextBox Name="tbTest" />
</local:MyUserControl>

除了当前页面的“tbTest”字段未初始化外,此方法均有效。在仔细检查时,InitializeComponent方法确实尝试查找文本框(带有FindName),但没有这样做(返回null)。

经过一番调查,我发现名称范围是问题所在-UserControl具有它自己的名称范围,因此不能通过页面的FindName来定位子控件,而可以使用UserControl的FindName方法来定位子控件。

如何更改UserControl以便子控件可以通过InitializeComponent方法定位?标准面板(StackPanel,网格等)似乎没有任何问题,因此必须有解决方案吗?

谢谢

最佳答案

在这一点上可能很难做到,但是最好的做法可能是从ItemsControl而不是UserControl派生您的控件。这样一来,名称范围就不会出现问题。

我想作为一种解决方法,您可以使用VisualTreeHelper深入研究控件以手动设置tbTest字段。

关于silverlight - UserControl子控件和FindName,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4571577/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com