Imbriquée Silverlight Datagrid Rangée de Détails fonctionne très bien, mais je veux un bouton!

Je suis en utilisant silverlight 3 datagrid, et dans ce cadre, je suis à la nidification des enregistrements liés dans un autre contrôle à l'aide de la rowdetails (visibilitymode = visiblewhenselected).

J'aime vraiment la façon dont cela fonctionne, mais je préfère avoir l'affichage de la grille de la ligne de détails lors d'un "+" bouton est pressé, un peu comme un arbre se développer lorsque vous cliquez sur un nœud.

J'ai essayé par programmation la définition du modèle en utilisant les ressources comme ceci:

<Grid.Resources>
    <DataTemplate x:Key="EmptyTemplate">
        <StackPanel>
            <!--<TextBlock Text="Empty Template!!!" />-->
        </StackPanel>
    </DataTemplate>
    <DataTemplate x:Key="SongTemplate">
        <StackPanel>
            <AdminControls:ArtistSongControl x:Name="ArtistSongControl" />
        </Stack>
    </DataTemplate>
</Grid.Resources>

Et dans la grille de l'LoadingRowDetails cas, je choisirais le modèle à définir par:

e.Row.DetailsTemplate = (DataTemplate)LayoutRoot.Resources["SongTemplate"];

Ce sortof travaillé, mais j'ai trouvé que j'avais des problèmes avec l'effondrement des lignes précédentes modèle de détails, et même écrasé ie8 (je ne sais pas si c'est lié).

En gros, j'aime vraiment la façon dont les silverlight 3 datagrid œuvres, et même la manière dont la rowdetailstemplate truc est mis en œuvre. Je voudrais simplement différer le chargement de tous les détails jusqu'à ce qu'une ligne est élargi intentionnellement (comme un arbre). L'ensemble de la 3ème partie de grilles semblent pour ce faire, et microsoft est tellement à l'étroit. Quelqu'un aurait-il une idée de comment résoudre ce problème?

Merci, Dennis

OriginalL'auteur Dennis Ward | 2009-08-07