ScrollIntoView pour WPG DataGrid (MVVM)
Je suis en utilisant le pattern MVVM, et j'ai créé une liaison dans le code XAML pour le SelectedItem d'un DataGrid. J'ai par programmation à l'ensemble de la SelectedItem, cependant quand je fais donc la grille de données ne défile pas à la sélection. Est il possible que je peux l'obtenir sans complètement casser le modèle MVVM?
J'ai trouvé la solution suivante, mais j'ai une erreur quand j'essaie de mettre en œuvre les Behavior
classe, même si j'ai installé Blend SDK: http://www.codeproject.com/Tips/125583/ScrollIntoView-for-a-DataGrid-when-using-MVVM
source d'informationauteur Andy | 2013-08-02
Vous devez vous connecter pour publier un commentaire.
Cela devrait fonctionner. L'idée est que vous avez cette propriété attachée à joindre à la
DataGrid
. Dans le xaml, où vous joindre, vous aurez le lier à une propriété sur votreViewModel
. Chaque fois que vous voulez par programme affecter une valeur à laSelectedItem
vous pouvez également définir une valeur pour cette propriété, dont la propriété attachée est lié.J'ai fait le joint le type de propriété à ce que les
SelectedItem
type, mais honnêtement, il n'a pas d'importance ce que le type est aussi long que vous le réglez à quelque chose de différent de ce qu'il était avant. Cette propriété attachée est tout simplement être utilisé comme un moyen d'exécuter du code sur le contrôle de la vue (dans ce cas, unDataGrid
) dans un MVVM d'une façon amicale.Donc, cela dit, voici le code de la propriété attachée:
Et voici l'extrait de code xaml:
Je suis nouveau sur le MVVM. Je comprends l'idée de MVVM et d'essayer de tout mettre en œuvre correctement.
J'ai eu un problème similaire à ci-dessus et j'ai fini avec 1 ligne dans le code XAML et 1 ligne de code derrière. Le reste du code est dans la machine virtuelle.
Je n'ai la suite dans le code XAML
Et ceci dans le code behind:
et cela fonctionne bien.
Je sais que certaines personnes ne veulent pas même une ligne de code dans le code derrière la fenêtre. Mais je pense que c'1 ligne est juste pour la vue. Il n'a rien à voir avec les données ou avec la logique de données. Donc, je pense que ce n'est pas une violation de la MVVM principe - et donc beaucoup plus facile à mettre en œuvre.
Tout les commentaires sont les bienvenus.