Я работаю над большим проектом WPF, и во время отладки мое окно вывода заполняется этими раздражающими предупреждениями:
Сведения о System.Windows.Data: 10: невозможно получить значение с помощью привязки, и допустимое> резервное значение не существует; вместо этого используется значение по умолчанию.
BindingExpression: Path = HorizontalContentAlignment; DataItem = null; целевой элемент
' ComboBoxItem ' (Name = ''); Целевое свойство равно «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 ControlTemplate
Любая помощь очень ценится