Текст расширителя группы WPF Datagrid - как связать? - PullRequest
2 голосов
/ 02 августа 2010

Я использую сетку данных со списком, который должен изменить поле группировки.Я использую следующий 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 ]

3 голосов
/ 03 августа 2010

Если вы хотите отобразить общее значение группируемого свойства, оно будет доступно как CollectionViewGroup.Name , так что вы можете просто сделать:

<TextBlock Text="{Binding Name}"/>
0 голосов
/ 03 августа 2010

Я решил свою проблему, добавив вложенный класс, содержащий текущую выбранную группировку (которую я установил, конечно, вручную) + дополнительные сведения, которые мне нужны. Затем привязка к свойству класса с помощью:

<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; }

    }

}

Теперь все хорошо ...

...