我有一个listview,我已经实现了分组,并在groupstyle中定义了一个扩展器,如下所示:
<ListView.GroupStyle>
<GroupStyle>
<GroupStyle.ContainerStyle>
<Style TargetType="{x:Type GroupItem}">
<Setter Property="Margin" Value="0,0,0,5"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type GroupItem}">
<Expander IsExpanded="True" >
<Expander.Header>
<DockPanel>
<TextBlock FontWeight="Bold" Text="{Binding Path=Name}" Margin="5,0,0,0" Width="100"/>
<TextBlock FontWeight="Bold" Text="{Binding Path=ItemCount}"/>
<TextBlock FontWeight="Bold" Text=" Items"/>
</DockPanel>
</Expander.Header>
<Expander.Content>
<ItemsPresenter />
</Expander.Content>
</Expander>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</GroupStyle.ContainerStyle>
</GroupStyle>
</ListView.GroupStyle>
我想修改扩展器,这样只有一个扩展,其余的被折叠,如果有多个,并且如果我想以编程方式扩展任何一个扩展器,即假设我从cs添加一个对象,并希望显示扩展器打开,应该可以,任何建议? 提前致谢
编辑:绑定列表视图和组的代码:
CollectionViewSource viewSource = new CollectionViewSource { Source = TO_DOlst };
viewSource.GroupDescriptions.Add(new PropertyGroupDescription("timeCategory"));
lstView.ItemsSource = viewSource.View;
timecategory是班级的成员
答案 0 :(得分:0)
您可以通过在类中创建类似于Name的布尔属性来绑定IsExpanded属性,并直接在CS中定义所有业务规则。
if(ItemsSource.Count() > 1)
//set IsExpanded = false;
else
// set only first item and so on.
问候。