繁体   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