如何制作视图以编辑不同模型的设置?

时间:2011-06-01 18:55:17

标签: c# model-view-controller mvvm dependency-injection soa

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

我有不同的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 ...
}

有更好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

是。在WPF或Silverlight中,您可以为ITextSearcher的各种实例创建DataTemplate。然后,您可以使用DataTemplateSelectorITextSearcher

的实例中选择适当的DataTemplate

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