WPF Datagrid组扩展文本 - 如何绑定?

时间:2010-08-02 13:19:11

标签: wpf wpf-controls binding wpfdatagrid prism

我正在使用带有combox的数据网格,该combox应该更改分组字段。我使用以下xaml来定义常规分组模板:

<DataGrid.GroupStyle>
        <GroupStyle>
            <GroupStyle.ContainerStyle>
                <Style TargetType="{x:Type GroupItem}">
                    <Setter Property="Template">
                        <Setter.Value>
                            <ControlTemplate TargetType="{x:Type GroupItem}">
                                <Expander>
                                    <Expander.Header>
                                        <StackPanel Orientation="Horizontal">
                                            <TextBlock Text="NEEDS TO BE BINDED..."/>
                                        </StackPanel>
                                    </Expander.Header>
                                    <ItemsPresenter />
                                </Expander>
                            </ControlTemplate>
                        </Setter.Value>
                    </Setter>
                </Style>
            </GroupStyle.ContainerStyle>
        </GroupStyle>
    </DataGrid.GroupStyle>

我只需要能够“扩展”扩展器中的TextBlock,以便能够输出所选的分组。

请帮忙......

2 个答案:

答案 0 :(得分:3)

如果您想显示被分组的属性的公共值,那么它将以CollectionViewGroup.Name的形式显示,因此您可以这样做:

<TextBlock Text="{Binding Name}"/>

答案 1 :(得分:0)

我通过添加一个嵌套类来解决我的问题,该类包含当前选定的分组(我手动设置的课程)+我需要的更多细节。然后使用:

绑定到类属性

<TextBlock Text="{Binding Source={StaticResource GroupingSubject},Path=Name}"/>

当然,我必须在xaml资源中声明该类,如下所示:

<local:GroupingName x:Key="GroupingName"/>

我的嵌套类如下所示:

public class GroupingSubject 
{
    private static String name = null;
    private static Object groupType = null;

    public GroupingSubject() { }
    public static String Name
    {
        get { return name; }
        set { name = value; }
    }

    public static Object GroupType
    {
        get { return groupType; }
        set { groupType = value; }

    }

}

现在一切都很好......