gpt4 book ai didi

c# - 通用 View 模型编辑支持

转载 作者:太空宇宙 更新时间:2023-11-03 16:55:47 25 4
gpt4 key购买 nike

我有一个抽象的通用 View 模型,用作其他几个 View 模型的基类。定义如下:

public abstract class DiscreteViewModel<T>
{
protected DiscreteItem<T> _selectedItem;
...
}

我的 DiscreteItem类也是泛型的,如下:

public class DiscreteItem<T>
{
public T Display { get; set; }
public double Value { get; set; }
}

我的想法是通过支持 Value 修改值接口(interface)(因为我的项目的所有值都是 double 的),但随后使用 Display 显示不同类型的东西(颜色、字符串、图像)属性(property)。

当我尝试创建编辑时出现问题 Window编辑这些 View 模型。我的目标是拥有一个 Window在 XAML 中定义,并使用数据模板和可能的 DataTemplateSelectorDiscreteItem 的类型提供不同类型的编辑.例如,如果我看到一种颜色,我想插入一个颜色选择器组合框来编辑它。如果我看到一个字符串,我想插入一个简单的文本框等。我很快发现 XAML 中根本不支持泛型。我什至无法实例化通用编辑 Window在 XAML 中。

很明显,我不想写编辑Window DiscreteItem 的每种可能类型的类.这将导致大量重复代码,并且当其他人出现并想要编辑某种新类型时会进一步重复。我想要一个可用于所有 DiscreteViewModel 的单一编辑器类型。有没有人对如何做到这一点有一个优雅的想法?泛型是解决这个问题的正确方法吗?

最佳答案

我不会在这里尝试使用泛型,我会让 Display 成为对象类型。然后,您可以拥有一个通用窗口,将其内容设置为离散项,让数据模板完成剩下的工作。

关于c# - 通用 View 模型编辑支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2103319/

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