gpt4 book ai didi

c# - 用户控制设计

转载 作者:行者123 更新时间:2023-12-03 10:45:13 24 4
gpt4 key购买 nike

我要写一个新的UserControl用于帐户管理。将多个 TabItem 集成到您的应用程序中我的UserControl必须执行 IModule界面看起来像:

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

我想建立 UserControl对于带有 MVVM 的 AccountManagement,所以我想实现 IModule我的 ViewModel 中的界面。

我的两个问题是:
  • 这是一个好的解决方案,还是我应该更喜欢实现 IModule在我的 View-CodeBehind 中?
  • 如果我实现 IModule在 ViewModel 中,如何将 View 作为 TabContent 传递给父级?
  • 最佳答案

    号码FrameworkElement是一个 View 概念,不应该在 ViewModel 中。我假设您必须在代码隐藏中实现它,但是您为什么不看看其他选项卡是如何编写的并确保您与现有代码库保持一致?

    编辑:
    您仍然需要在 View 中实现上述内容。所有三个属性都是基于 View 的,TabTitle 可能除外。它可以从 View 模型中提取其名称。没有什么可以阻止您为选项卡的内容转向 MVVM,但是这个现有的要求必须在 View 中完成。

    决定某物是否属于 VM 的一个好的经验法则是考虑是否可以在没有任何 View 的情况下对 VM 进行单元测试,或者理论上是否可以编写基于文本的控制台 View 来驱动 VM。

    关于c# - 用户控制设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28853567/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com