如何使用MVVM模式通过绑定机制添加组的描述

时间:2019-07-08 06:49:47

标签: wpf mvvm grouping

我已经在MVVM模式的WPF对话框中使用PropertyGroupDescription创建了分组。看起来像这样-

图片1

enter image description here

我想以以下方式在修订计数旁边为每种 Variant 类型添加说明-

图片2

enter image description here

在折叠模式下,视图应如下所示-

图片3

enter image description here

在我的代码中,我这样创建了GroupDescription-

 CollectionView view = (CollectionView)CollectionViewSource.GetDefaultView(VariantList);
        PropertyGroupDescription groupDescription = new PropertyGroupDescription("variantName");
        view.GroupDescriptions.Add(groupDescription);

这是我的XAML代码-

<ListView Grid.Column="1" Grid.Row="0" Margin="25.2,82,22,19" ItemsSource="{Binding VariantList}" SelectedItem="{Binding SelectedVariant, Mode=TwoWay}">
        <ListView.View>
            <GridView>
                <GridViewColumn Header="Variant" Width="125" DisplayMemberBinding="{Binding displayName}"/>
                <GridViewColumn Header="Revision" Width="50" DisplayMemberBinding="{Binding revisionNumber}"/>
                <GridViewColumn Header="Author" Width="80" DisplayMemberBinding="{Binding author}" />
                <GridViewColumn Header="Commit Comment" Width="170" DisplayMemberBinding="{Binding comment}" />
                <GridViewColumn Header="Last Update" Width="100" DisplayMemberBinding="{Binding lastUpdate}" />
            </GridView>
        </ListView.View>
        <ListView.ContextMenu>
            <ContextMenu>
                <MenuItem Header="Create Variant" />
            </ContextMenu>
        </ListView.ContextMenu>

        <ListView.GroupStyle>
            <GroupStyle>
                <GroupStyle.ContainerStyle>
                    <Style TargetType="{x:Type GroupItem}">
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate>
                                    <Expander IsExpanded="False">
                                        <Expander.Header>
                                            <StackPanel Orientation="Horizontal">
                                                <TextBlock Text="{Binding Name}" FontWeight="Bold" Foreground="Gray" FontSize="12" VerticalAlignment="Bottom" />
                                                <TextBlock Text="{Binding ItemCount}" FontSize="12" Foreground="Green" FontWeight="Bold" FontStyle="Italic" Margin="10,0,0,0" VerticalAlignment="Bottom" />
                                                <TextBlock Text=" revision(s)" FontSize="12" Foreground="Silver" FontStyle="Italic" VerticalAlignment="Bottom" />
                                            </StackPanel>
                                        </Expander.Header>
                                        <ItemsPresenter />
                                    </Expander>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </GroupStyle.ContainerStyle>
            </GroupStyle>
        </ListView.GroupStyle>
    </ListView>

现在,我的 VariantList 已绑定到 ListView 。我想创建另一个名为“ VariantDescription ”的集合,该集合要绑定并显示为每个变体的描述,如图像 2&3 所示。

任何线索都将不胜感激。

0 个答案:

没有答案