Wie kann ich einen Wert von einer bestimmten Zelle in einem Datagrid mit dem Auswahlmodus FullRow erhalten?WPF VB.Net Datagrid Wert von einer bestimmten Zelle im FullRow-Auswahlmodus?
Im Moment habe ich diesen Befehl verwenden, aber es nur Anzeige ist der Wert, wenn ich die Zelle manuell auswählen:
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
Aber ich will nicht manuell die Zelle auszuwählen aller Zeiten. Ich möchte nur auf eine beliebige Zelle in dieser Zeile klicken und immer den Wert aus der Zelle "Pfad" abrufen und in einen String einfügen.
XAML Datagrid-Code:
<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
Entschuldigung, aber ich finde kein CellClick-Ereignis in der WPF-Datagridview. – xxXTimXxx
Doppelklicken Sie in das Datagrid und klicken Sie in das Drop-down-Menü, um das Ereignis auszuwählen, und wählen Sie cellClick –
Nein, ich habe es bereits überprüft. In Windows Forms gibt es ein Ereignis namens CellClick, aber nicht in WPF. Sie können es auch hier überprüfen: [Microsoft Datagrid-Ereignis] (https://msdn.microsoft.com/en-us/library/system.windows.controls.datagrid_events (v = vs.110) .aspx) – xxXTimXxx