В моем проекте я также использую MVVM Light, у меня есть выпадающий список с коллекцией элементов, и кнопка, нажатие и действие которой зависят от выбранного элемента, из выпадающего списка, вы должны создать команду Relay с параметром, посмотрите на пример из моегокод
public RelayCommand<Project> StartTimer { get; private set; }//declare command
StartTimer = new RelayCommand<Project>(OnStartTimer);
private void OnStartTimer(Project project)
{
if (project != null)
{
currentProject = project;
if (!timer.IsTimerStopped)
{
timer.StopTimer();
}
else
{
Caption = "Stop";
timer.StartTimer();
}
}
в представлении Я связываю раскрывающийся список с коллекцией класса Project, а для параметра команды кнопки связываю выбранный элемент формы в раскрывающемся списке посмотрите код
<ComboBox Name="projectcomboBox" ItemsSource="{Binding Path=Projects}" IsSynchronizedWithCurrentItem="True" DisplayMemberPath="FullName"
SelectedValuePath="Name" SelectedIndex="0" >
</ComboBox>
<Button Name="timerButton" Content="{Binding Path=Caption}" Command="{Binding Path=StartTimer}"
CommandParameter="{Binding ElementName=projectcomboBox, Path=SelectedItem}" ></Button>
payвнимание на привязку Command и CommandParameter
, также вы можете использовать этот подход не только для выпадающего списка