簡體   English   中英

WPF DataGrid切割列(MVVM)

[英]WPF datagrid cut a column (MVVM)

在WPF datagrid中,是否可以允許用戶剪切或刪除列?

如果是,是否有內置支持?
如果沒有,我該怎么辦? 一個示例圖將非常好。

您需要兩個功能:

  • 一個供用戶選擇/取消選擇他們想在網格中看到的列
  • 一個根據該信息進行操作並實際上隱藏/顯示受影響的列的控件

盡管您正在使用MVVM,但這樣做相當容易,因為它可以在View中處理。 沒錯,VM對此一無所知-純粹是與視圖相關的事情,與VM所保存的數據無關。

我不會提供示例代碼,您可以自己解決。 右鍵單擊列,您的UI可以像上下文菜單一樣簡單,並且可以選擇“隱藏此列”。 當然,這是一個不可逆的單向過程,但也許這就是您想要的,並且列會一直隱藏,直到用戶下次運行該應用程序為止。

另一個選項是彈出一個模態子窗口,其中包含足夠的信息,供用戶選擇要顯示或隱藏的列。 再次可以從上下文菜單項或其他UI動作中觸發。 此時,您可以枚舉網格列,創建一個數據對象列表,每列上都有信息(例如名稱或列標題及其可見性),創建適當控件的實例以顯示此信息(這是View ),為其分配數據對象(ViewModel),然后將View插入到模式子窗口中。 關閉窗口后,您可以獲取該數據,並根據用戶的選擇遍歷顯示或隱藏的列。 請記住,這仍然可以在原始View背后的代碼內發生。 如果您使用的是地區或UI管理器(例如Prism),那么可以通過它來管理我所說的子窗口。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM