Есть dataGrid. При щелчке по строке этого грида в метод передается значение ячейки этой строки. Xaml грида :
<DataGrid x:Name="DGInvestment" ItemsSource="{Binding InvestCollection}" AutoGenerateColumns="False">
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseLeftButtonUp">
<i:InvokeCommandAction Command="{Binding SelectDetails}" />
</i:EventTrigger>
</i:Interaction.Triggers>
<DataGrid.Columns>
<DataGridTextColumn Header="Column1" MinWidth="200" Width="*" Binding="{Binding Type}"/>
<DataGridTextColumn Header="Column2" MinWidth="200" Width="*" Binding="{Binding Date}"/>
</DataGrid.Columns>
</DataGrid>
Коллекция из вьюмодели :
public ObservableCollection<Invest> InvestCollection { get; set; }
public class Invest
{
public string Type { get; set; }
public string Date { get; set; }
}
Заполняется в конструкторе :
InvestCollection = new ObservableCollection<Invest>();
InvestCollection.Add(new Invest() { Type = " type" });
InvestCollection.Add(new Invest() { Date= " date" });
И метод в самой вьюшке который должен принимать значение из ячейки грида :
public ICommand SelectDetails
{
get
{
return new RelayCommand(delegate()
{
//..........
});
}
}
Собственно вопрос - как в SelectDetails
получить значение определенного столбца той строки, на которую нажал пользователь ? Использую Mvvm Light
В ViewModel определяем:
private Invest selectedInvest = new Invest();
public Invest SelectedInvest
{
get{
return selectedInvest;
}
set{
if (selectedInvest == value) return;
selectedInvest = value;
RaisePropertyChanged("SelectedInvest");
// сюда можно добавить что должно выполняться когда выбранный элемент
// изменится
}
}
`
Как уже советовал user2455111 используйте SelectedItem:
<DataGrid x:Name="DGInvestment" ItemsSource="{Binding InvestCollection}" SelectedItem="{Binding SelectedInvest, Mode=TwoWay}"
P.S: ICommand SelectDetails должна быть определена в ViewModel, а не в View. Иначе не выйдет присоединить команду к View. Вы используете Binding. Binding ищет указанную команду в DataContext, а это ViewModel.
Виртуальный выделенный сервер (VDS) становится отличным выбором
У меня есть панель с элементами внутри нее, у панели есть скроллинг по горизонтали и вертикалиСобытие OnScroll панели происходит, если кликнуть...
Всем приветРаньше я использовал стандартные checkbox теперь я хочу начать использовать Bootstrap multi select
Необходимо написать небольшое приложение, которое работает с почтовыми ящиками в Exchange Server - Создает/изменяет записи в календаре, синхронизирует...