Imports System.Collections.ObjectModel Imports System.ComponentModel Imports System.Runtime.CompilerServices Namespace WpfApp074 Public Class ViewModel Implements ICommand Public Sub New() cvs.Source = GetData() End Sub Private cvs As New CollectionViewSource Public ReadOnly Property View As ICollectionView Get Return cvs.View End Get End Property Private Function GetData() As ObservableCollection(Of Data) Dim col As New ObservableCollection(Of Data) For i = 1 To 10 col.Add(New Data With {.Col1 = $"Row {i}"}) Next Return col End Function Public Sub Execute(parameter As Object) Implements ICommand.Execute Dim d = TryCast(parameter, Data) d.Executed = True End Sub Public Event CanExecuteChanged As EventHandler Implements ICommand.CanExecuteChanged Public Function CanExecute(parameter As Object) As Boolean Implements ICommand.CanExecute Return True End Function End Class Public Class Data Implements INotifyPropertyChanged Public Property Col1 As String Private _executed As Boolean = False Public Property Executed As Boolean Get Return Me._executed End Get Set(value As Boolean) Me._executed = value OnPropertyChanged() End Set End Property Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged Private Sub OnPropertyChanged( Optional propName As String = "") RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propName)) End Sub End Class End Namespace