3
DataTemplate
을 사용하는 ListBox
이 있습니다. ListBoxItems
은 TextBlock
및 ComboBox
으로 표시됩니다. 이제 내부 스타일 ComboBoxes
에 사용하지 않고 ListBoxItems
에 스타일을 사용하고 싶습니다. 죄송하지만 ComboBoxItem
은 ListBoxItem
에서 상속됩니다. 아니면 여기에 뭔가 빠졌나요? ComboboxItem 내부에 영향을 미치지 않고 ListBoxItem에 스타일 적용
<ListBox Grid.Row="1" Grid.Column="1" Name="comboBoxI" Margin="2"
ItemsSource="{Binding SomeCollection}" IsSynchronizedWithCurrentItem="True">
<ListBox.Resources>
<Style TargetType="ListBoxItem">
<Style.Resources>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/>
<SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black"/>
<SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent"/>
</Style.Resources>
</Style>
</ListBox.Resources>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name}" Width="320" Padding="1,1,1,1"
<TextBlock.ToolTip>
<ToolTip Content="{Binding Path=Description}"/>
</TextBlock.ToolTip>
</TextBlock>
<ComboBox ItemsSource="{Binding SomeOtherCollection}" IsSynchronizedWithCurrentItem="True"
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding CreationInfo}" Width="Auto" Padding="1,1,1,1">
<TextBlock.ToolTip>
<ToolTip Content="{Binding Path=Description}"/>
</TextBlock.ToolTip>
</TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
는 또한
ComboBoxItem
또 다른 스타일을 추가했지만,이 경우에 나는 기본값으로 색상을 다시 설정하는 방법을 모르겠어요.
의견을 보내 주셔서 감사합니다.
헨드릭.
목록을 표시하고 싶지만 선택 기능이 필요하지 않은 경우 ListBox 대신 ItemsControl을 사용할 수 있습니다. – LPL
스타일 선택으로 선택 기능을 숨기려고 실제로 시도한 것처럼 좋은 힌트입니다. :) ScrollViewer 안에 ItemsControl을 래핑했고 멋지게 작동하는 것 같습니다. 필자는 여전히 ListBox/ComboBox/Styles를 사용하는 솔루션에 관심이 있습니다. – Hendrik