我有一個DependencyProperty
用戶控件,需要UIElement
。到目前爲止,這麼好,問題是我找不到元素的孩子。通過wpf中的DependencyProperty發送UIElements
我認爲問題是我缺乏知識,有誰能告訴我問題是什麼以及可能的解決方案嗎?
我做了一個小測試,這樣的程序
用戶控件代碼隱藏:使用用戶控件
public UIElement TestSendUiElement
{
get { return (StackPanel)GetValue(TestSendUiElementProperty); }
set { SetValue(TestSendUiElementProperty, value); }
}
public static readonly DependencyProperty TestSendUiElementProperty =
DependencyProperty.Register("TestSendUiElement", typeof(StackPanel), typeof(Test), new FrameworkPropertyMetadata(TestSendUiElementPropertyChanged));
private static void TestSendUiElementPropertyChanged(DependencyObject source, DependencyPropertyChangedEventArgs e)
{
Console.WriteLine(VisualTreeHelper.GetChildrenCount((UIElement)e.NewValue));
}
XAML:
<my:Test >
<my:Test.TestSendUiElement>
<StackPanel Orientation="Horizontal" Margin="0,2">
<TextBox Height="23" Width="50" Margin="0,0,5,0" />
<TextBox Height="23" Width="125" />
</StackPanel>
</my:Test.TestSendUiElement>
</my:Test>
輸出爲0的孩子。它不應該是2嗎?
LogicalTreeHelper接縫是在我的情況的最佳途徑。但是,當我厭倦這個我只得到這個輸出:System.Windows.LogicalTreeHelper + EnumeratorWrapper。 所以我沒有得到任何孩子,我可以通過循環。我應該得到孩子嗎? – Cinaird 2010-10-20 14:02:31