Как сделать вид для редактирования настроек разных моделей? - PullRequest
0 голосов
/ 01 июня 2011

Это пример моей общей проблемы:

У меня есть разные реализации 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 голосов
/ 02 июня 2011

Да.В WPF или Silverlight вы можете создать DataTemplate для различных экземпляров ITextSearcher.Затем вы можете использовать DataTemplateSelector для выбора соответствующего DataTemplate с учетом экземпляра ITextSearcher

Поскольку вы пометили сообщение с помощью MVVM, я предполагаю, что вы используете WPF

...