【发布时间】:2021-11-24 18:12:23
【问题描述】:
我确实有一个 ListDetailsView 显示一些数据(让我们说 Company 作为这里的一个简单示例)。通常Company 的详细信息显示为只读。但是,通过ListDetailsView.DetailsCommandBar 可以编辑Company(也可以添加新的Company)。 view 和 edit 模式之间的明确分离似乎是 UI 的一个不错的选择。我使用UserControl 来显示Company 的详细信息。
所以这是我的问题:
-
view- 和 edit- 模式之间的区别应该发生在哪里?我认为拥有
CompanyDetailsControl和CompanyDetailsEditControl并在两者之间进行选择是个好主意(两者都使用相同的CompanyDetailsViewModel)。还有其他解决方案,例如,CompanyDetailsControl可以在内部处理 edit- 和 view- 模式。 - 假设在两个
UserControl之间切换是个好主意,那么ListDetailsView.DetailsTemplate如何实现呢?我虽然在这里使用DataTemplateSelector很容易,但这仅适用于ItemTemplate。
不确定要提供什么代码来澄清我的问题。因此,如果您需要任何代码来更好地理解我的问题,请发表评论。
【问题讨论】:
-
Q1:有几种方法可以处理这个问题,显然开发者/作者决定“如何做”/“它应该看起来如何”。例如。您可以在单个视图模型中拥有
bool属性并在编辑时切换它,将所有控件(或父级groupBox)绑定到IsReadOnly并让它完成工作。这取决于最适合您的方式〜提到的交换观点的方法可以奏效。 :) 就我而言,第一季度对于这个网站来说太宽泛了。 -
@Tatranskymedved 我在某种程度上同意。 1.我认为这是一个基本的场景,有一种默认的处理方式,我根本找不到。 2. winui3 的文档/示例很少。那么如何用该技术解决它呢?再次高度赞赏一些最佳实践
-
Jan,我把“我的意见”作为答案,希望它能帮助你做出决定。我认为将这个问题提交给softwareengineering.meta.stackexchange.com 可能是值得的,在那里人们正在讨论“代码的架构”和“如何将不同的部分放在一起”而不是“小型编程主题”(SO)。
标签: c# windows-community-toolkit winui-3