簡體   English   中英

表示層中的控件修改

[英]Control modification in presentation layer

我正在使用GridView並且數據綁定發生在Presenter層中,但是例如必須將單元格1修改並轉換為HyperLink控件,然后我必須在Presenter層中調用RowDataBound事件並在該事件內進行修改。 MVP可以嗎?

我通常會在視圖級別執行數據綁定和事件處理。 通過在Presenter中執行此操作,可以在Presenter和要避免的View之間創建依賴關系。 我不確定如何對在GridView上調用.DataBind()的Presenter方法進行單元測試。

我要做的(也是我認為是標准的)是在視圖類的代碼背后添加一個屬性,該屬性表示GridView的數據。 因此,假設您的GridView顯示了員工,則該屬性可能類似於

public List<Employee> Employees 
{ 
    get { return (List<Employee>)GridView1.DataSource; }
    set // The Presenter calls this
    {
        GridView1.DataSource = value;
        GridView1.DataBind();
    }
}

演示者只需設置此屬性,然后就可以像使用Webforms一樣進行數據綁定和事件處理。

如果需要,這還可以使您對Presenter進行單元測試。 假設您的視圖實現了一個接口,則可以對單元測試使用其他實現,即setter不會調用.DataBind() ,它可能只是一個自動屬性。 您可以創建一個模擬視圖,將其傳遞給Presenter,然后測試您的屬性不為null或類似的內容。

暫無
暫無

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

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