[WPF] Дочерний объект с именем Name "~ChildID6" не найден в
От: Neir0  
Дата: 08.12.09 09:58
Оценка:
Я тут долго не мог понять, в чем дело, когда наткнулся на такую ошибку:
"Дочерний объект с именем Name "~ChildID6" не найден в VisualTree." (вылетало на app.Run(wnd))
            ItemsControl itemsControl = new ItemsControl();
            DataTemplate dt = new DataTemplate();
            HierarchicalDataTemplate hdt = new HierarchicalDataTemplate();

            FrameworkElementFactory brdr = new FrameworkElementFactory(typeof(Border));
            FrameworkElementFactory TextBlock1 = new FrameworkElementFactory(typeof(TextBlock));
            FrameworkElementFactory TextBlock2 = new FrameworkElementFactory(typeof(TextBlock));

            brdr.SetValue(Border.CornerRadiusProperty, new CornerRadius(2));
            brdr.SetValue(Border.BorderThicknessProperty, new Thickness(2));
            brdr.SetValue(Border.BorderBrushProperty, new SolidColorBrush(Colors.Red));
            TextBlock1.SetBinding(TextBlock.TextProperty, bind);
            TextBlock2.SetBinding(TextBlock.TextProperty, bind2);
            TextBlock1.AppendChild(TextBlock2);
            brdr.AppendChild(TextBlock1);

            dt.VisualTree = brdr;
            hdt.VisualTree = brdr;

            itemsControl.ItemTemplate = dt;
            itemsControl.DataContext = Workers;
            itemsControl.ItemsSource = Workers;

            TreeView treeView = new TreeView()
            {
                ItemTemplate = hdt,
                DataContext = Workers,
                ItemsSource = Workers
            };


            StackPanel stackPanel = new StackPanel();
            stackPanel.Children.Add(itemsControl);
            stackPanel.Children.Add(treeView);
            wnd.Content = stackPanel;
            app.Run(wnd);

Оказалось, два шаблона не могут разделять одни и те же элементы(т.е. к примеру, если закомментить dt.VisualTree, то все запустится без проблем).
Где можно почитать о таких особенностях WPF?
И еще вопрос не в тему, как изменить локализацию .NET Framework?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.