You need to use ControlTemplate

ie: 
http://rachel53461.wordpress.com/2011/07/17/wpf-error-specified-element-is-already-the-logical-child-of-another-element-disconnect-it-first/


The reason being is they way the visual controls work from an index
standpoint int hat what you are doing is the same as naming two nodes
within the same heirachy with the same x:Name="" ... you can't have
one logical child in two virtual areas it has instead virtualize
itself in a different index.


---
Regards,
Scott Barnes
http://www.riagenic.com


On Mon, Dec 12, 2011 at 11:21 AM, Steven Nagy <[email protected]>wrote:

>  Hiyas,****
>
> ** **
>
> Really simple to recreate this issue, just paste in this code to a new WPF
> project:****
>
> ** **
>
>     <Grid>        ****
>
>         <Grid.RowDefinitions>****
>
>             <RowDefinition Height="*" />****
>
>             <RowDefinition Height="*" />****
>
>         </Grid.RowDefinitions>****
>
>         <Grid.Resources>****
>
>             <Style x:Key="ExpanderStyle" TargetType="Expander">****
>
>                 <Setter Property="Header">****
>
>                     <Setter.Value>****
>
>                         <Grid>****
>
>                             <TextBlock Text="Foo" />****
>
>                         </Grid>****
>
>                     </Setter.Value>****
>
>                 </Setter>****
>
>             </Style>****
>
>         </Grid.Resources>****
>
> ** **
>
>         <Expander Style="{StaticResource ExpanderStyle}" />****
>
>         <Expander Style="{StaticResource ExpanderStyle}" Grid.Row="1" />**
> **
>
>     </Grid>****
>
> ** **
>
> Essentially, 2 expanders using the same style to set the header.****
>
> ** **
>
> Throws this exception: *“'Set property
> 'System.Windows.FrameworkElement.Style' threw an exception.' Line number
> '23' and line position '10'”*
> Inner exception: *“Specified element is already the logical child of
> another element. Disconnect it first.”*****
>
> ** **
>
> However if you sacrifice the complex header content for something simple
> like this, it works fine:****
>
> <Setter Property="Header" Value="Foo" />****
>
> ** **
>
> Any ideas why this is the case?****
>
> Using style inheritance from the same base style causes same issue.****
>
> However if I blanket copy paste the style with a new name and point the
> expander to that, then it also works fine. So it’s not the header content
> that’s the problem specifically.****
>
> I’m guessing some sort of virtualisation similar to what the tab control
> does with tab pages under binding scenarios; it is using the same actual
> Grid control and applying it to both headers, thus the inner exception
> above. No idea how to fix it though (other than copying pasting styles
> which I really don’t want to do).****
>
> ** **
>
> Cheers,****
>
> Steve****
>
> ** **
>
> _______________________________________________
> ozwpf mailing list
> [email protected]
> http://prdlxvm0001.codify.net/mailman/listinfo/ozwpf
>
>
_______________________________________________
ozwpf mailing list
[email protected]
http://prdlxvm0001.codify.net/mailman/listinfo/ozwpf

Reply via email to