簡體   English   中英

UserControl設計

[英]UserControl design

我必須為AccountManagement編寫一個新的UserControl 為了與幾個TabItem集成到您的應用程序中,我的UserControl必須實現IModule接口,該接口類似於:

public interface IModule : INotifyPropertyChanged
{
  FrameworkElement TabContent { get; }
  ImageSource TabIcon { get; }
  string TabTitle { get; }
}

我想使用MVVM構建用於AccountManagement的UserControl ,所以我想在ViewModel中實現IModule接口。

我的兩個問題是:

  1. 這是一個好的解決方案,還是我更希望在View-CodeBehind中實現IModule

  2. 如果我在ViewModel中實現IModule ,如何將View作為TabContent傳遞給父級?

FrameworkElement是一個視圖概念,不應位於ViewModel中。 我假設您將不得不在后台代碼中實現它,但是為什么不查看其他選項卡的編寫方式並確保與現有代碼庫保持一致?

編輯:您仍然需要在視圖中實現以上內容。 這三個屬性都是基於視圖的, TabTitle可能是例外,它可以從視圖模型中提取其名稱。 對於選項卡的內容,沒有什么可以阻止您轉向MVVM的,但是必須在視圖中完成此現有要求。

確定VM是否屬於某個東西的一個很好的經驗法則是考慮是否可以在沒有任何視圖的情況下對VM進行單元測試,或者理論上是否可以編寫基於文本的控制台視圖來驅動VM。

暫無
暫無

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

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