2012-04-13 45 views
1

假設您的ViewModel屬性是字符串並且包含長文本。 用戶希望編輯在您的WPF DataGrid中的in-place模式這個屬性,所以如何編輯WPF DataGrid中的長文本(如備忘錄編輯和下拉列表)

  • 在視圖模式中撥付細胞顯示了省略號
  • 修剪在編輯模式下的文本將是文本在單元格的下拉菜單中打開。下拉應該只允許垂直滾動。

所以它應該是這樣的: enter image description here

我的問題是如何在WPF DataGrid中實現這些要求?

回答

0

使用數據模板和樣式觸發器來實現您的要求。

+0

我已經嘗試過在DataGridTemplateColumn.CellTemplate和DataGridComboBoxColumn中直接使用ComboBox,但還有很多未解決的問題。我想直接使用ViewModel的屬性,而不是將它包裝在ItemSource和s.o的任何集合中。你可以發佈你的工作xaml解決方案嗎? – 2012-04-13 13:33:04

+0

你想實現的是,如果網格處於視圖模式,那麼它將顯示爲一個文本,如果它們太長,並且在編輯模式下你想讓文本打開一個單元格的下拉單元格,組合框顯示什麼?與視圖模式相同? – 2012-04-13 20:31:13

+0

對於視圖模式,這可以很容易地解決,例如, TextTrimming的TextBlock的ElementStyle =「CharacterEllipsis」。但主要問題是如何顯示所需的組合框(在編輯模式下或在兩種模式下),顯示上圖中的文本。 – 2012-04-13 22:32:20