我的ContentControl中有一个奇怪的行为,并且不知道它为什么会这样。
此Xaml代码列出了我的ObservableCollection项目
<ItemsControl ItemsSource="{Binding Stops}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<ContentControl>
<local:TripDetailListItemControl />
</ContentControl>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
但这仅显示列表的第一项
<ItemsControl ItemsSource="{Binding Stops}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<ContentControl>
<ContentControl.Style>
<Style TargetType="{x:Type ContentControl}">
<Setter Property="Content">
<Setter.Value>
<local:TripDetailListItemControl/>
</Setter.Value>
</Setter>
</Style>
</ContentControl.Style>
</ContentControl>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
有什么区别?我是否错过了具有样式覆盖的Enumarator?
背景,为什么我需要这种方式,就是我在这个TripDetailListItemControl
中有一个Proeprty来改变这个项目的视图。所以我希望这个样式中的DataTrigger以不同的方式显示它。
但该列表并未首先显示。我需要在Content Setter中添加什么才能显示所有项目?
答案 0 :(得分:1)
添加BasedOn:
<Style TargetType="{x:Type ContentControl}" BasedOn="{StaticResource {x:Type ContentControl}}">
或:
<Style TargetType="{x:Type ContentControl}">
<Setter Property="Content">
<Setter.Value>
<ContentPresenter></ContentPresenter>
</Setter.Value>
</Setter>
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<local:TripDetailListItemControl/>
</DataTemplate>
</Setter.Value>
</Setter>
</Style>