簡體   English   中英

WPF 我們可以交換面板(DockPanel、StackPanel)嗎?

[英]WPF can we swap panels (DockPanel, StackPanel)?

我想創建兩種不同類型的 DockPanel。 如果用戶點擊一個鏈接,它會加載 DockPanel #1,否則會加載 #2。

我們可以動態交換它們嗎? 我是 WPF 的新手。 在 REALBasic 中,我會使用 GroupPanels,如果需要,我會交換它們。

謝謝

U 可以動態創建控件並使用其他控件填充其內容。 或者你可以只放置兩種類型並隱藏你不想顯示的一種。

看看Josh Smith 在 MSDN 雜志上的 MVVM 文章 Josh 被許多人認為是 MVVM 大師,這篇文章很好地解釋了基礎知識。

考慮到這一點,我可能會將您的應用程序作為 MVVM 應用程序。

Model 將“只是”成為您的數據 model(很像在 MVC 中)。

接下來,您的每個面板都會有一個視圖。 每個視圖都可以設置為 DataTemplate(如文章中所示),或設置為 UserControl(正如我在許多其他地方所做的那樣)。 這樣做使其模塊化,並且更易於擴展、維護等。

您的 MainWindow 實際上也被認為是一個視圖,您可以在其上放置其他視圖。

所有視圖都將由一個或多個 ViewModel 類控制。 你有多少取決於你的設計。 通常,如果有不同的功能,您將在 View 和 ViewModel 之間建立或多或少的一對一關系(盡管您當然可以與單個 ViewModel 共享多個 View)。 通常還會有一個“主視圖模型”class 將所有東西放在一起。

一般而言,鑒於您的問題的一般描述,您的 ViewModel 可能會包含一個命令(或多個命令),當您的用戶選擇鏈接時處理。 這個命令可能會設置一些屬性,它將控制顯示哪個視圖(通常通過綁定)。

抱歉,我無法得到比這更詳細的信息,但如果我這樣做了,我需要更多地了解你的設計,而且我必須寫更多的東西,這在這個論壇中並不合適。

暫無
暫無

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

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