У меня есть этот стиль:установленного значения для ListBoxItem шаблонного связывания
<Style x:Key="SelectableListBoxItemStyle" TargetType="{x:Type ListBoxItem}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<Border Background="Transparent"
BorderBrush="{TemplateBinding BorderBrush}"
CornerRadius="4"
BorderThickness="2"
x:Name="IconBorder"
Margin="4,2,4,2">
<ContentPresenter/>
</Border>
<ControlTemplate.Triggers>
<Trigger Property="IsSelected" Value="true">
<Setter TargetName="IconBorder"
Property="BorderBrush"
Value="Blue" />
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
Моя проблема заключается в том, что я не знаю, какое свойство устанавливается на ListBox, потребляя мой стиль так, что границы это ListBoxItems бы в результате получится требуемая пограничная кисть. Я также хотел бы сделать эту работу для другой граничной кисти в моем стиле.
Я хотел бы иметь два списка с этим же стилем, но с разными цветами границ. У меня есть это для ListBox:
<ListBox
ItemsSource="{Binding SelectedProduct.Pictures}"
SelectedItem="{Binding SelectedSet, Mode=TwoWay}"
ItemContainerStyle="{StaticResource ResourceKey= SelectableListBoxItemStyle}">
</ListBox>
Update..I попытался это:
<ListBox
ItemsSource="{Binding SelectedProduct.Pictures}"
SelectedItem="{Binding SelectedSet, Mode=TwoWay}">
<ListBox.ItemContainerStyle>
<Style TargetType="{x:Type ListBoxItem}" BasedOn="{StaticResource SelectableListBoxItemStyle}">
<Setter TargetName="IconBorder" Property="BorderBrush" Value="Green" />
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
Но, я получаю: Ошибка 8 Имя_целевого_объекта свойство не может быть установлен на стиль сеттер.
Спасибо за ваш ответ. См., Я уже установил стиль контейнера элементов в списке на «SelectableListBoxItemStyle», который вставлен в мой вопрос. Проблема заключается в «BorderBrush =» {TemplateBinding BorderBrush} ". Как я * устанавливаю * это, когда я использую стиль в xaml? То есть. какое свойство я должен установить в окне списка, чтобы граница моего ListBoxItem заканчивалась наличием установленной граничной кисти? –
Еще раз спасибо. Второй работает, но теперь мой ListBox должен иметь тот же BorderBrush, что и ListBoxItems, что не так уж и велико. Я отредактировал мой вопрос, чтобы добавить обновление, возможно, вы можете исправить это :) –
О, хороший! Трюк ресурса прибил его. Большое спасибо :) –