2016-11-29 136 views
0

我看到這個問題已被問到,但大多數答案似乎圍繞在我使用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模型的名稱值。

如何獲得每個單元格的值?

回答

0

您需要將SelectedItem更新爲與ObservableColleciton中的項目相同的類型。

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

這樣做。非常感激!! –

相關問題