WPF - Liaison à l'élément actuel à partir du style d'en-tête de groupe

Je suis quelque chose de WPF noob merci donc de le prendre facile sur moi 😉

Je suis en train de créer un groupe de contrôle DataGrid (WPF toolkit version).
J'ai réussi à créer la source de données, le contrôle DataGrid lui-même, l'objet collectionviewsource et le Style pour le groupe de l'en-tête (qui utilise un expandeur).

Je veux du groupe par une propriété appelée 'Assign_To" et la valeur (la valeur que les éléments groupés part) s'affichent dans l'en-tête. Cependant, je ne peux pas travailler sur la façon de se lier à l'actuel groupe/élément de commande pour faire retour de sa Assign_To de la propriété.

Le plus proche que j'ai eu (voir ci-dessous) est obligatoire pour l'ensemble de l'objet collectionviewsource, qui retourne une valeur fixe pour Assign_To. Quelle serait la bonne façon de se lier à l'élément en cours/groupe afin de retourner la valeur correcte pour 'Assign_To'?

Espère que quelqu'un peut vous aider. Merci!

Andy T.

Voici le code source...

<Window DataContext="{Binding Source={StaticResource SampleDataSource}}"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dg="http://schemas.microsoft.com/wpf/2008/toolkit"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    x:Class="DataGridTest.MainWindow"
    x:Name="Window"
    Title="MainWindow"
    Width="640" Height="480" mc:Ignorable="d">

    <Window.Resources>
        <CollectionViewSource x:Key="CVS" Source="{Binding MyData}">
            <CollectionViewSource.GroupDescriptions>
                <PropertyGroupDescription PropertyName="Assign_To"/>
            </CollectionViewSource.GroupDescriptions>
        </CollectionViewSource>

        <Style x:Key="GroupHeaderStyle" TargetType="{x:Type GroupItem}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type GroupItem}">
                        <Expander IsExpanded="True">
                            <Expander.Header>
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock Text="Assign To: "/>
                                    <TextBlock Text="{Binding Source={StaticResource CVS}, Path=Assign_To}"/>
                                </StackPanel>                               
                            </Expander.Header>
                            <ItemsPresenter/>
                        </Expander>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>

    </Window.Resources>


    <Grid x:Name="LayoutRoot">
        <dg:DataGrid
         ItemsSource="{Binding Source={StaticResource CVS}}"
         SelectionUnit="CellOrRowHeader" 
         CanUserAddRows="False" 
         CanUserDeleteRows="False" 
         CanUserResizeRows="False">
         <dg:DataGrid.GroupStyle>
            <GroupStyle ContainerStyle="{StaticResource GroupHeaderStyle}">
                <GroupStyle.Panel>
                    <ItemsPanelTemplate>
                        <dg:DataGridRowsPresenter/>
                    </ItemsPanelTemplate>
                </GroupStyle.Panel>
            </GroupStyle>
         </dg:DataGrid.GroupStyle>          
        </dg:DataGrid>   
    </Grid> 
</Window>

source d'informationauteur Andy T

Leave a Reply

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *