2016-11-29 3 views
0

私はこの質問がどこにあるのか聞いてきましたが、MVVMパターンを使用している間は、ほとんどの回答がコードの背後にあるようです。私の状況に関係する答えについては、私は数多くの提案を試みましたが、私は大きな絵を欠いているようです。DataGrid内の選択した行のセルから値を取得するにはどうすればよいですか?

基本的には、SQLデータベースからデータグリッド内の選択されたすべての行を削除する削除ボタンを追加するか、削除ボタンを各行に追加するだけです。私は1つの削除ボタンを持っているが、私は実際には既に完了しているが、それはデータベースから特定のレコード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

SelectedItemObservableCollecitonのアイテムと同じタイプに更新する必要があります。

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

これはそのトリックでした。とても有難い!! –

関連する問題