我目前正在使用WPF和C#創建簡單應用程序(作爲學習練習)。我注意到,我將需要兩個幾乎相同的頁面(相同的用戶控件,相同的列表,按鈕等相同的方法)。將會有所不同的是內容 - 不同的文本,標題,圖像顯示。
避免重複的方法很簡單 - 我將創建一些抽象的基本頁面,這兩個頁面將繼承。但是,我如何避免重複基本上整個XAML代碼?有沒有辦法以文明的方式解決它,或者我應該像洞穴人一樣複製和粘貼它?
非常感謝!如何避免重複性XAML?
1
A
回答
4
1.創建用戶控件和重用他們
你不必直接把所有的東西到你的窗口。相反,請創建一個UserControl,並在其中放置類似的控件。然後可以通過更改DataContext或使用DependencyPropertys來區分不同的用例。假設你命名你的UserControl MyUserControl
。然後,您可以像這樣在你的窗口:
<local:MyUserControl x:Name="MemberNameCanBeAccessedInCodeBehind" />
2.重用代碼隱藏
一兩件事,這是一個大開眼界,我就重用的事實是,XAML文件和它的代碼隱藏文件基本上是同一枚硬幣的兩面。我們回到MyUserControl
。在XAML文件中,您有:
<UserControl x:Class="MyUserControl" ...
並在代碼隱藏你:
public partial class MyUserControl : UserControl
的事情是:你不必從UserControl
繼承!如果你有這樣的鍵綁定或事件處理程序的一些代碼隱藏功能,你可以通過創建自己的自定義用戶控件類重用他們:
public class MyUserControlClass : UserControl
{
// Everything that you want to reuse!
}
現在,您只需更換你的XAML UserControl
和代碼隱藏與MyUserControlClass
和你可以使用該功能:
<local:MyUserControlClass x:Class="MyUserControl" ...
public partial class MyUserControl : MyUserControlClass
的XAML窗口可能會顯示在第一個錯誤,但在編譯時它的工作原理。
相關問題
- 1. 避免XAML代碼複製
- 2. 如何避免重複?
- 3. 如何避免重複值?
- 4. 如何避免重複值
- 5. 如何避免RowDefinition重複?
- 6. 如何避免重複
- 7. 如何避免在xaml中重複類似的標記?
- 8. 避免重複
- 9. 避免重複
- 10. 避免重複行
- 11. 避免重複值
- 12. R:避免重複$
- 13. 避免重複行
- 14. 避免重複的QuickCheck屬性
- 15. JavaScript重構/避免重複
- 16. 如何避免數據重複插入?
- 17. 如何避免序言中的重複
- 18. 播種時如何避免重複行?
- 19. 如何避免重複標籤?
- 20. 如何避免Java中的「重複類」
- 21. Mysql如何避免重複我自己
- 22. 如何避免重複在PHP循環
- 23. Lucene AddIndexes(合併) - 如何避免重複?
- 24. RPM規格。如何避免重複
- 25. 如何避免重複以下代碼?
- 26. 如何避免重複實現tStringGrid.Col&tStringGrid.Row
- 27. AT到SCHTASKS:如何避免重複?
- 28. 如何避免重複變量?
- 29. Lucene 6如何避免重複條目
- 30. 如何避免重複樣式項目?
這聽起來像一個不同的控制文本,圖像等綁定到視圖模型的屬性的模板。 –
感謝您指點我正確的方向伴侶,我會研究這一點。非常感謝! –
...或用戶控件而不是模板;從本傑明那裏回答很好。 –