簡體   English   中英

可重復使用的用戶控件中的按鈕

[英]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.

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