2016-05-02 2 views
0

Как я могу получить значение из определенной ячейки в Datagrid с режимом выбора FullRow?WPF VB.Net Datagrid Значение из определенной ячейки в режиме выбора FullRow?

На данный момент я использую эту команду, но это только дисплей это значение, если я вручную выбрать ячейку:

Public Sub MenuItem_Click(sender As Object, e As RoutedEventArgs) 
    Dim selectedData As String = "" 
    Dim wert As String = "" 
    For Each dataGridCellInfo In myGridView.SelectedCells() 
     Dim pi As Reflection.PropertyInfo = dataGridCellInfo.Item.[GetType]().GetProperty(dataGridCellInfo.Column.Header.ToString()) 
     Dim value = pi.GetValue(dataGridCellInfo.Item, Nothing) 
     selectedData += dataGridCellInfo.Column.Header + ": " + value.ToString() + vbLf 
     wert = value.ToString 
    Next 
    MessageBox.Show(selectedData) 

End Sub 

Но я не хочу, чтобы вручную выбрать ячейку, все время. Я просто хочу щелкнуть по любой ячейке в этой строке и получить всегда значение из ячейки «Pfad» и поместить ее в строку.

XAML DataGrid Код:

<DataGrid Name="myGridView" SelectionUnit="Cell" IsReadOnly="True" ItemsSource="{Binding}" Grid.ColumnSpan="3" Background="#FFA4A4A4" BorderThickness="2" BorderBrush="#FF6A6F77" AutoGenerateColumns="False" Margin="10,31,10,149.714" GridLinesVisibility="None"> 
     <DataGrid.Columns> 
      <DataGridTextColumn Header="Track" Binding="{Binding Path=Track}" Width="100"/> 
      <DataGridTemplateColumn Header=""> 
       <DataGridTemplateColumn.CellTemplate> 
        <DataTemplate> 
         <Image Width="50" Height="50" VerticalAlignment="Center" HorizontalAlignment="Center" Source="{Binding Path=Image}"/> 
        </DataTemplate> 
       </DataGridTemplateColumn.CellTemplate> 
      </DataGridTemplateColumn> 
      <DataGridTextColumn Binding="{Binding Path=Endung}" Width="100" Header=" Container"/> 
      <DataGridTextColumn Binding="{Binding Path=Album}" Width="100" Header="Album"/> 
      <DataGridTextColumn Binding="{Binding Path=Bitrate}" Width="100" Header="Bitrate"/> 
      <DataGridTextColumn Binding="{Binding Path=Pfad}" Width="100" Header="Pfad"/> 
     </DataGrid.Columns> 
    </DataGrid> 

Code-Behind:

Public Structure Austauscher 

    Dim files As New ObservableCollection(Of Austauscher) 

    Private _track As String 
    Private _image As BitmapImage 
    Private _album As String 
    Private _pfad As String 
    Private _bitrate As String 
    Private _endung As String 


    Property Track() As String 
     Get 
      Return _track 
     End Get 
     Set(ByVal Value As String) 
      _track = Value 
     End Set 
    End Property 
    Property Image As BitmapImage 
     Get 
      Return _image 
     End Get 
     Set(ByVal Value As BitmapImage) 
      _image = Value 
     End Set 
    End Property 
    Property Album() As String 
     Get 
      Return _album 
     End Get 
     Set(ByVal Value As String) 
      _album = Value 
     End Set 
    End Property 
    Public Property Pfad As String 
     Get 
      Return _pfad 
     End Get 
     Set(ByVal Value As String) 
      _pfad = Value 
     End Set 
    End Property 
    Property Bitrate As String 
     Get 
      Return _bitrate 
     End Get 
     Set(ByVal Value As String) 
      _bitrate = Value 
     End Set 
    End Property 
    Property Endung As String 
     Get 
      Return _endung 
     End Get 
     Set(ByVal Value As String) 
      _endung = Value 
     End Set 
    End Property 

End Structure 

ответ

0

На первом вам нужно tử открытым де событие "CellClick" на вашем DataGridView и поставить де следующий код:

If (e.ColumnIndex <> -1) And (e.RowIndex <> -1) Then 
     Dim selectedCell as string = "" 
     selectedCell = myGridView.rows(e.rowIndex).cells("numberOfCell").valeu 
End If 
  • Если этот ответ вам поможет. Просьба отметить это при правильном ответе.
+0

Извините, но я не нашел событие CellClick в WPat datagridview. – xxXTimXxx

+0

Дважды щелкните по datagrid и щелкните по выпадающему списку, чтобы выбрать событие, и выберите cellClick –

+0

Нет. Я все проверил его. В Windows Forms есть событие CellClick, но не в WPF. Здесь вы также можете проверить: [Событие Microsoft Datagrid] (https://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid_events (v = vs.110) .aspx) – xxXTimXxx

Смежные вопросы