我正在寫一個wpf程序,需要幾個用戶控件,看起來完全相同,但執行不同的功能。使用winForms,我可以擴展基本控件並添加功能,但據我所知,繼承xaml文件是不可能的。有什麼辦法可以有不同的代碼隱藏類,它們都使用相同的xaml文件進行控制?WPF:使用不同的代碼隱藏相同的xaml文件
2
A
回答
0
您可能可以使用MVVM模式執行此操作,並創建可能實現相同接口的多個VM。然後XAML視圖可以綁定到您的任何虛擬機,這取決於他們共享相同接口的事實。
在這種方法中你根本不使用代碼。
0
一種方法是使用繼承。一個非常簡單的例子就是帶有一個按鈕的UserControl
,它應該在MessageBox
中顯示不同的內容。
我們將有這樣的事情:
public abstract class SomeUserControl : UserControl
{
//declared by XAML (can be made public with x:FieldModifier="public")
public Button MyButton;
//code-behind
public SomeUserControl() {
InitializeComponent();
}
}
public class MySpecialControl : SomeUserControl {
public MySpecialControl() {
MyButton.Click += (sender, e) => MessageBox.Show("Bla");
}
}
要使用MySpecialControl
,只是聲明它在XAML像你和你以前的人做:
<myNamespace:MySpecialControl />
請注意,您也可以創建如果行爲變化不是那麼大的話,按鈕點擊的抽象方法。
0
隨着的WinForms,我可以擴展基本控制
而且在WPF一個人不能做類似的?
使用依賴項屬性創建自定義組合控件,該控件將設置控件的模式以適應其目標消費者的需求。
控件可以基於現有的控件或控件。
相關問題
- 1. 不同的HTML,相同的代碼隱藏和相同的控件
- 2. XAML代碼隱藏
- 3. WPF:在文件後面共享相同代碼的多個XAML文件
- 4. 如何使用兩個不同的代碼文件使用相同的xaml文件?
- 5. silverlight和wpf應用程序使用相同的xaml文件
- 6. WPF的ItemsSource工作在代碼隱藏而不是在XAML
- 7. 對不同文件夾中的不同域使用相同的代碼
- 8. 的Silverlight XAML:引用代碼隱藏類
- 9. WPF代碼隱藏
- 10. 從代碼隱藏到XAML
- 11. WPF XAML在同一個XAML文件
- 12. 代碼隱藏找不到XAML
- 13. 使用不同的代碼隱藏環境
- 14. WPF MVVM +用戶控件代碼隱藏
- 15. 使用相同的XSLT代碼在同一個文件
- 16. WPF更改Xaml中基於代碼隱藏屬性的顏色
- 17. WPF如何讓代碼隱藏變量的XAML
- 18. 多次使用不同值的css代碼不同的文件
- 19. 兩個文件,完全相同的代碼,不同的輸出?
- 20. 動態加載外部xaml文件的代碼隱藏?
- 21. 2個相同的控件在同一個Grid中? (WPF/XAML)
- 22. 從不同的XAML文件
- 23. WPF和Silverlight的相同代碼基礎?
- 24. WPF代碼隱藏等效
- 25. WPF ItemsControl.ItemsTemplate代碼隱藏
- 26. 相同的模板,不同的代碼?
- 27. Xamarin表格 - 允許兩頁共享相同的代碼隱藏
- 28. 如何通過WPF中的c#代碼隱藏來編寫逐字XAML代碼?
- 29. 把複選框放在TreeView中使用代碼隱藏不xaml
- 30. WPF代碼隱藏DataBinding不工作
也許另一種方法會更好,在控件上創建可能的最小代碼,並使用控件的行爲創建不同的類,然後實例化表單,然後選擇要使用的行爲類。 – Gusman