2012-04-13 1 views
1

Angenommen, Sie haben eine Eigenschaft Ihres ViewModel, die eine Zeichenfolge ist und einen langen Text enthält. Der Benutzer will diese Eigenschaft in der in-Place-Modus in WPF-Datagrid bearbeiten, soWie man einen langen Text im WPF DataGrid bearbeitet (wie Memo-Edit mit Drop-Down)

  • Im View-Modus die eigneten Zelle den Text mit Elipsis
  • Im Editiermodus der Text getrimmt zeigt sein in der Dropdown-Liste für die Zelle geöffnet. Das Drop-down sollte nur das vertikale Scrollen ermöglichen.

So sollte es wie folgt aussieht: enter image description here

Meine Frage ist, wie in der WPF-Datagrid diese Anforderungen zu implementieren?

Antwort

0

Verwenden Sie Datenvorlagen und Style-Trigger, um Ihre Anforderungen zu erfüllen.

+0

Ich habe bereits die ComboBox in der DataGridTemplateColumn.CellTemplate und DataGridComboBoxColumn direkt versucht, aber es gibt viele ungelöste Probleme. Ich möchte die Eigenschaft des ViewModel direkt verwenden und sie nicht in Sammlungen für die ItemSource einbetten, und so weiter. Können Sie Ihre funktionierende XAML-Lösung posten? –

+0

Was Sie erreichen möchten, ist, dass, wenn das Raster im Ansichtsmodus ist, es als ein mit Ellipsen beschnittener Text angezeigt wird, wenn sie zu lang sind, und im Bearbeitungsmodus der Text eine Dropdown-Zelle für die Zelle öffnen soll Was zeigt die Combobox? Wie der Ansichtsmodus? –

+0

Für den Ansichtsmodus kann dies leicht mit z.B. der ElementStyle für TextBlock mit TextTrimming = "CharacterEllipsis". Aber die Hauptfrage ist, wie man die gewünschte Combobox (im Bearbeitungsmodus oder in beiden Modi) zeigt, die den Text wie auf dem Bild oben zeigt. –

Verwandte Themen