Это немного запутанно, поэтому давайте рассмотрим это по одному:
Первое, что вам нужно сделать, это сообщить View Model, какой элемент выбран. Для этого вам необходимо добавить свойство IsSelected в Customer
public bool IsSelected { get; set; }
(Редактировать: как мне было указано, класс CustomerViewModel уже обладает этим свойством, поэтому вышеупомянутое не является необходимым для этого конкретного проекта - хотя оно в общем случае.)
Затем необходимо привязать свойство IsSelected к элементам в ListView. Один из способов сделать это - использовать стиль, ориентированный на клиента. Примерно так:
<Style x:Key="CustomerListStyle" TargetType="{x:Type ListViewItem}">
<Setter Property="IsSelected" Value="{Binding Path=IsSelected, Mode=TwoWay}" />
</Style>
Затем назначьте этот стиль, используя ItemContainerStyle объекта ListView:
<ListView ItemContainerStyle="{StaticResource CustomerListStyle}" ...>
Чтобы иметь возможность редактировать выбранного клиента, вы должны добавить команду EditCostumer в AllCustomersViewModel. Реализуйте эту Команду, используя RelayCommand, чтобы показать представление редактирования для выбранного элемента.
Вы можете использовать LINQ, чтобы найти клиента с IsSelected == true
.