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. P>
merci! p>
4 Réponses :
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); }
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
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: p> c #: p> alors nous l'ajoutons à la DataGrid in Xaml: p> puis nous codons le relaisCommand dans la vue de la vue: p> c #: p> Les _ResultselecteSystems est simplement une liste d'éléments affichés dans le Datagramrid: p> c #: p> J'espère que cela aide, un peu utilise les deux méthodes de Bill sans avoir à référencer MVVM-Light. P> P>
Version C # Version SemelleItemsbehavior classe. Peut-être aider quelqu'un.
Répondit partiellement par Stackoverflow.com/a/2615487/284795