2010-04-21 4 views
0

J'ai le problème suivant:Silverlight 4: Est-il possible de lier la propriété width et height de ListBoxItem?

J'ai un ListBox dont les éléments sont placés sur Canvas. Je voudrais pouvoir placer xamly ses éléments. Le ItemContainerStyle ressemble à ceci:

<Style x:Key="ElementContainerStyle" TargetType="ListBoxItem" > 
    <Setter Property="Canvas.Top" Value="{Binding BoundingBox.Y}" /> 
    <Setter Property="Canvas.Left" Value="{Binding BoundingBox.X}" /> 
    <Setter Property="Width" Value="{Binding BoundingBox.Width}" /> 
    <Setter Property="Height" Value="{Binding BoundingBox.Height}" /> 
    ... 
</Style> 

Avec un tel style se bloque SL avec le message de InnerException:

System.NotSupportedException: Impossible de définir la propriété en lecture seule

Pourquoi est-ce que lecture seule propriété? Si je mets des valeurs régulières là (pas de données limitées) ça fonctionne bien, sauf que - ce n'est pas ce que je voulais. J'attendais avec impatience de nouvelles fonctionnalités pour SL4 (comme la capacité à se lier aux propriétés Largeur et Hauteur), mais il semble qu'un tel tour ne peut toujours pas être fait?

Il fonctionne très bien dans WPF ..

Tout le monde peut faire la lumière sur ce sujet?

Répondre

1

L'affectation d'une liaison à la propriété Setter.Value n'est pas prise en charge dans Silverlight. Consultez cette blog post pour une solution de contournement, qui utilise une propriété jointe pour créer/affecter la liaison lorsque le style est appliqué à une instance.

Questions connexes