Warum ignoriert mein WPF DataGrid RowDetail SelectedItem, akzeptiert aber ItemsSource?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Warum ignoriert mein WPF DataGrid RowDetail SelectedItem, akzeptiert aber ItemsSource?

Post by Anonymous »

Ich verwende einen WPF DataGrid mit MVVM-Ansatz. Die ItemsSource des DataGrid ist an eine ObservableCollection von etwas gebunden, das eine Id und eine ObservableCollection von Strings hat.
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












Und das ist der Code dahinter:

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; }
}
Ich setze einen Haltepunkt am Setter von SelectedEntry und am Setter von SelectedComment. Der erste wird aufgerufen, der zweite jedoch nicht. Was übersehe ich?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post