如何创建用于编辑不同模型的视图';设置

本文关键字:视图 模型 设置 何创建 创建 编辑 用于 | 更新日期: 2023-09-27 17:58:06

这是我的一般问题的一个例子:

我有不同的ITextSearcher实现来搜索一些东西。每个实现都有不同的设置,用户可以对这些设置进行编辑。因此,我无法为实现创建一个通用的可编辑视图(因为设置无法通过接口抽象)。

我开发了一个简单的库,可以在这种情况下提供帮助。它允许用视图信息对类及其属性进行声明性标记。视图生成器使用此信息来呈现类。这是一个例子:

[Editable]
internal class TermSearcher : ITextSearcher
{
    [Editable(Name="Search Expression", Order = 1)]
    public string Expression
    {...}
    [Editable(Name="Match Similar Characters", Order = 2)]
    public bool MatchSimilarChars
    {...}
    // rest of the implementation ...
}

有更好的解决方案吗?

如何创建用于编辑不同模型的视图';设置

是。在WPF或Silverlight中,您可以为ITextSearcher的各种实例创建DataTemplate。然后,您可以使用DataTemplateSelector在给定ITextSearcher 实例的情况下选择适当的DataTemplate

由于您使用MVVM标记了帖子,我假设您使用的是WPF