La liaison en WPF style causes inexplicable “Impossible de trouver le conseil d'FrameworkElement” erreur

J'ai un ItemsControl qui affiche un tas de rectangles. Chaque rectangle doit être décalé vers le haut et vers la gauche. Donc, j'ai créé un RectangleStyle qui utilise les fixations pour définir la largeur, la hauteur X de la traduction, et Y traduction d'un rectangle.

La largeur et la hauteur des liaisons fonctionnent très bien, mais j'obtiens l'erreur suivante pour la TranslateTransform les liaisons:

Système.De Windows.Erreur de données: 2 : Impossible de trouver des gouverneurs FrameworkElement ou FrameworkContentElement pour l'élément cible. BindingExpression:Path=Offset.X; DataItem=null; élément cible est "TranslateTransform' (HashCode=16452547); la propriété cible est " X "(de type "Double")

Voici la définition de mon ItemControl:

<ItemsControl
    Style="{StaticResource ItemsControlStyle}"
    ItemsSource="{Binding Zones}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <Rectangle Style="{StaticResource RectangleStyle}" />
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

Voici la définition de ItemsControlStyle:

<Style x:Key="ItemsControlStyle" TargetType="ItemsControl">
    <Setter Property="ItemsPanel">
        <Setter.Value>
            <ItemsPanelTemplate>
                <Canvas />
            </ItemsPanelTemplate>
        </Setter.Value>
    </Setter>
    <Setter Property="ItemContainerStyle">
        <Setter.Value>
            <Style>
                <Setter Property="Canvas.Left" Value="{Binding Point.X}" />
                <Setter Property="Canvas.Top" Value="{Binding Point.Y}" />
            </Style>
        </Setter.Value>
    </Setter>
</Style>

Et voici la définition de RectangleStyle:

<Style x:Key="RectangleStyle" TargetType="Rectangle">
    <Setter Property="Width" Value="{Binding Size.Width}" />
    <Setter Property="Height" Value="{Binding Size.Height}" />
    <Setter Property="RenderTransform">
        <Setter.Value>
            <!-- these bindings are causing the error -->
            <TranslateTransform X="{Binding Offset.X}" Y="{Binding Offset.Y}" />
        </Setter.Value>
    </Setter>
</Style>

Les deux fixations du RenderTransform poseur de RectangleStyle sont la cause de l'erreur, mais je ne sais pas quoi faire pour résoudre le problème. Fait intéressant, les graphismes sont traduit correctement, de sorte que WPF est en mesure de résoudre les liaisons, c'est juste pas heureux à ce sujet pour une raison.

Ce que je peux faire pour corriger les liaisons?


Modifier

J'ai envoyé un rapport de bug sur MS Connect:

https://connect.microsoft.com/VisualStudio/feedback/details/746840/misleading-cannot-find-governing-frameworkelement-error-message-appears-in-output-window

  • Eh bien, c'est facile à reproduire. J'ai essayé à propos de 10 choses différentes, mais avec les fixations de travail OK, je me demandais si vous aussi vous devez vous connecter celui-ci sur MME le Connecter et de les laisser me demande si c'est un bug.
  • Ressemble le rapport de bug, le lien est changé ou n'est plus public. Vous demandez-vous à propos de la résolution de ce depuis l'ajout de x:le Nom ne fait rien pour moi.
InformationsquelleAutor devuxer | 2010-07-05