[英]Buttons in re-usable user controls
我有一個UserControl,我想在一個頁面中多次重復使用。 我發現了一個有關類似問題的文章 ,但有一個TextBox
:如果TextBox
中有TextBox
,則可以將單個屬性公開,如下所示:
public string FirstName
{
get { return privateTextBox.Text; }
set { privateTextBox.Text = value; }
}
從主視圖(具有視圖模型),我可以訪問該屬性,例如:
MyUserControl personUserControl= new MyUserControl();
personUserControl.FirstName = viewModel.FirstName;
這是我的問題:如果我要訪問的自定義用戶控件中有一個按鈕,該怎么辦。 我可以像訪問文本框一樣訪問其屬性,但是事件 (主要是Click
事件)如何處理?
當前,我最好的解決方案是調用一個委托事件,該事件由(主視圖的)視圖模型捕獲,然后調用另一個事件,但這似乎是一個非常糟糕的設計。
是否不可能以類似於屬性訪問的方式從用戶控件訪問事件?
PS:不,我將MVVM和WinForms混合使用不是錯誤。 這是有目的的(明智與否)。
編輯:問題與WinForms無關(據我所知),與使用多層UserControls有關。 這就提出了一個問題:我應該從頂部向下傳遞ViewModel穿過多層UserControl,還是應該向上傳遞UserControls的屬性?
您可以使用與處理其他屬性幾乎相同的方式公開事件:
private Button myButton;
public event EventHandler MyButtonClick
{
add { myButton.Click += value; }
remove { myButton.Click -= value; }
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.