Ich möchte, dass die Id in der DataGrid-Zeile angezeigt wird und die Sammlung von Strings in den Dow-Details angezeigt werden soll. Außerdem muss ich die Zeichenfolgen auswählen, also beispielsweise entfernen. Deshalb habe ich den Zeilendetails eine ListBox hinzugefügt.
ItemsSource und SelectedItem des DataGrid funktionieren einwandfrei, ebenso wie die ItemsSource der ListBox in den Zeilendetails. Aber das SelectedItem der ListBox wird nicht gesetzt, wenn ich auf ein Element klicke.
Das ist mein XAML-Code:
Code: Select all
Code: Select all
using System.Collections.ObjectModel;
using System.Windows;
namespace DataGridTestApp;
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
var gridVM = new GridViewModel();
for (int i = 0; i < 3; i++)
{
var entryVM = new EntryViewModel { Id = $"Id {i}" };
for (int j = 0; j < 3; j++)
entryVM.Comments.Add($"Comment {(i * 3) + j}");
gridVM.Entries.Add(entryVM);
}
dataGrid.DataContext = gridVM;
}
}
public class GridViewModel
{
public ObservableCollection Entries { get; } = [];
public EntryViewModel? SelectedEntry { get; set; }
}
public class EntryViewModel
{
public string Id { get; set; } = string.Empty;
public ObservableCollection Comments { get; } = [];
public string? SelectedComment { get; set; }
}
Mobile version