如何从数据网格中选定行的单元格中获取值?

问题描述:

我看到这个问题已被问到,但大多数答案似乎围绕在我使用MVVM模式的代码背后。对于那些与我的情况有关的答案,我尝试了许多不同的建议,但我似乎忽略了大局。如何从数据网格中选定行的单元格中获取值?

基本上我想要做的是添加一个删除按钮,将从SQL数据库中删除数据网格中的所有选定行或向每行添加一个删除按钮。我宁愿有一个单一的删除按钮,但我打开每一行的删除按钮,我已经做了,但仍然面临同样的问题,因为我需要从数据库中删除特定的记录ID以及删除它从集合中。

XAML

  <DataGrid x:Name="licenseGrid" 
        ItemsSource="{Binding LoggedUsers}" 
        SelectedItem="{Binding SelectedLicense, Mode=TwoWay}" 
        Style="{DynamicResource DataGridStyle}" 
        Grid.Row="2" 
        Grid.Column="1" 
        Grid.ColumnSpan="6" 
        Height="535" 
        VerticalAlignment="Top" 
        IsReadOnly="True" 
        AutoGenerateColumns="False" 
        HeadersVisibility="Column" 
        SelectionMode="Extended" 
        CanUserDeleteRows="True"> 

视图模型

 public ObservableCollection<MD_LoggedUsersModel> LoggedUsers 
    { 
     get { return _loggedUsers; } 
     set { _loggedUsers = value; NotifyPropertyChanged(nameof(LoggedUsers)); } 

     public string SelectedLicense 
    { 
     get 
     { 
      return _selectedLicense; 
     } 
     set 
     { 
      if (_selectedLicense != value) 
      { 
       _selectedLicense = value; 
       OnPropertyChanged(nameof(SelectedLicense)); 
       RevokeSelected(_selectedLicense); 
      } 
      if (_selectedLicense == null) 
      { 
       LoadData(); 
      } 
     } 
    } 

正被返回是LoggedUsers模型的名称值。

如何获得每个单元格的值?

您需要将SelectedItem更新为与ObservableColleciton中的项目相同的类型。

public MD_LoggedUsersModel SelectedLicense 
{ 
    get 
    { 
     return _selectedLicense; 
    } 
    set 
    { 
     if (_selectedLicense != value) 
     { 
      _selectedLicense = value; 
     } 
    } 
} 
+0

这样做。非常感激!! –