9
votes

WPF Toolkit DataGrid Multi-Select: Comment obtenir la sélection de systémique?

J'utilise le DataGrid de Toolkit WPF. J'ai activé la propriété sur le DataGrid de permettre une multi-sélection de lignes. Comment puis-je obtenir le SEXEYITEMS? J'utilise un cadre MVVM pour lier ma viewmodel à ma vue.

merci!


1 commentaires

Répondit partiellement par Stackoverflow.com/a/2615487/284795


4 Réponses :


4
votes

Je cherche également une réponse à cette question. Les réponses que j'ai trouvées sont soit à

1) dans le CodeBeHind Déléguez le travail à une méthode de la vue dans la liste de transmission de la liste code> SELECTEMITEMS CODE> à partir du Datagramrid. Cette collection contiendra tous les éléments sélectionnés. P>

ou p>

2) Utilisez la lumière Toolkit MVVM qui vous permet d'utiliser l'événement pour commander et transmettre un objet sous forme de paramètre directement. au point de vue. P>

private void DataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    IList lst = this.myDataGrid.SelectedItems;
    ViewModel.RowsSelected(lst);
}


0 commentaires

2
votes

J'ai réussi à contourner cela à l'aide de commandes de relais en tant que facture mentionnée. C'est un peu sale dans les parties, mais j'avais évité de mettre n'importe quel code dans le fichier derrière.

Premièrement, dans votre XAML - lie votre commande sur un bouton ou quelque chose déclenche votre relaisCommand. P>

Private _CommandSelect As RelayCommand(Of IEnumerable)

Public ReadOnly Property CommandSelect() As RelayCommand(Of IEnumerable)
    Get
        If _CommandSelect Is Nothing Then
            _CommandSelect = New RelayCommand(Of IEnumerable)(AddressOf CommandSelectExecuted, AddressOf CommandSelectCanExecute)
        End If
        Return _CommandSelect
    End Get
End Property


Private Function CommandSelectExecuted(ByVal parameter As IEnumerable) As Boolean

    For Each Item As IElectoralAreaNode In parameter

    Next

    Return True
End Function

Private Function CommandSelectCanExecute() As Boolean
    Return True
End Function


0 commentaires

7
votes

Prendre la réponse de Bill, la fusion des options 1 et 2, ajoutant une saupoudrance de propriétés ci-jointes comme alternative à la rédaction de code-derrière, j'ai eu un comportement.

Tout d'abord, nous avons le comportement: xxx

c #: xxx

alors nous l'ajoutons à la DataGrid in Xaml: xxx

puis nous codons le relaisCommand dans la vue de la vue: xxx

c #: XXX

Les _ResultselecteSystems est simplement une liste d'éléments affichés dans le Datagramrid: xxx

c #: xxx

J'espère que cela aide, un peu utilise les deux méthodes de Bill sans avoir à référencer MVVM-Light.


0 commentaires

3
votes

Version C # Version SemelleItemsbehavior classe. Peut-être aider quelqu'un. XXX


0 commentaires