Je travaille sur un grand projet WPF et pendant déboguer ma fenêtre de sortie est rempli avec ces avertissements ennuyeux:Comment se débarrasser de l'avertissement contraignant de liaison HorizontalContentAlignment ennuyeux?
System.Windows.Data Informations: 10: ne peut pas récupérer la valeur en utilisant la liaison et pas valide> valeur de repli existe; en utilisant par défaut à la place. BindingExpression: Path = HorizontalContentAlignment; DataItem = null; l'élément cible est 'ComboBoxItem' (Name = ''); cible propriété est « HorizontalContentAlignment » (type> « HorizontalAlignment »)
Dans l'exemple spécifique ComboBoxItem est de style ainsi:
<Style x:Key="{x:Type ComboBoxItem}" TargetType="{x:Type ComboBoxItem}">
<Setter Property="OverridesDefaultStyle" Value="True"/>
<Setter Property="SnapsToDevicePixels" Value="True"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ComboBoxItem}">
<Border
Name="bd"
Padding="4,4,4,4"
SnapsToDevicePixels="True"
CornerRadius="2,2,2,2">
<ContentPresenter />
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsHighlighted" Value="true">
<Setter TargetName="bd" Property="Background" Value="{StaticResource MediumBrush}"/>
<Setter TargetName="bd" Property="Padding" Value="4,4,4,4"/>
<Setter TargetName="bd" Property="CornerRadius" Value="2,2,2,2"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Je sais que le problème est généré par la définition du thème par défaut pour ComboBoxItem qui contient des choses comme:
<Setter Property="Control.HorizontalContentAlignment">
<Setter.Value>
<Binding Path="HorizontalContentAlignment" RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=ItemsControl, AncestorLevel=1}" />
</Setter.Value>
</Setter>
mais je pense également que l'utilisation
<Setter Property="OverridesDefaultStyle" Value="True"/>
prendrait soin du problème, et à la place des avertissements sont toujours là.
EDIT: Pour reproduire le problème, vous devez remplacer également le style de ComboBox exactement comme fait dans cet exemple de MSDN: ComboBox ControlTemplate Example
Toute aide est vraiment apprécié
Je ne peux pas reproduire votre problème avec ce XAML ni dans 4.0 ni dans 3.5. Il fonctionne bien sans aucun avertissement contraignant. – majocha
vous avez raison, j'ai testé seul et il ne me donne pas d'avertissement, je modifie la question pour plus de détails – Drake
Je ne peux pas voir cette liaison problématique dans l'exemple que vous avez lié dans edit. – majocha