Я работаю над большим проектом WPF, и во время отладки мое окно вывода заполняется этими раздражающими предупреждениями:
System.Windows.Data Information: 10: Не удается получить значение с использованием привязки и не существует допустимого > резервного значения; используя вместо этого по умолчанию. BindingExpression: Path = HorizontalContentAlignment; DataItem = null; целевой элемент ' ComboBoxItem' (Name= ''); target является "HorizontalContentAlignment" (тип > ' HorizontalAlignment ')
В конкретном примере ComboBoxItem оформлен таким образом:
<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>
Я знаю, что проблема возникает из-за определения темы по умолчанию для ComboBoxItem, которая содержит такие вещи, как:
<Setter Property="Control.HorizontalContentAlignment">
<Setter.Value>
<Binding Path="HorizontalContentAlignment" RelativeSource="{RelativeSource Mode=FindAncestor, AncestorType=ItemsControl, AncestorLevel=1}" />
</Setter.Value>
</Setter>
но я также подумал, что используя
<Setter Property="OverridesDefaultStyle" Value="True"/>
позаботился о проблеме, и вместо этого предупреждения все еще существуют.
РЕДАКТИРОВАТЬ: Чтобы воспроизвести проблему, вам нужно также переопределить стиль ComboBox, как это сделано в этом примере из MSDN: Пример панели управления ComboBox
Любая помощь действительно оценена