Я хочу делать попытку дизайна MVC для своего небольшого приложения.
У меня есть нормальный класс До-диеза ViewBase, который расширяет UserControl. Это - единственный .cs файл.
У меня есть несколько классов, что я хочу расширить ViewBase. Это фактический UserControls, таким образом, у них есть код позади .cs файла и .xaml файла.
Однако До-диез говорит мне, что для этих классов, их базовый класс "отличается от заявленного в других частях".
То, что я хочу сделать возможный вообще? Что я делаю неправильно?
Обратите внимание, что я не изменил свои файлы XAML, таким образом, они все еще используют теги.
Вот соответствующие нормы:
// This gives the error in question and ViewBase is underlined
// "Base class of LoginView differs from declared in other parts"
public partial class LoginView : ViewBase {
public LoginView(Shell shell, ControllerBase controller) : base(shell, controller) {
InitializeComponent();
}
}
// This one is a single .cs file
public abstract class ViewBase : UserControl {
public Shell Shell { get; set; }
public ControllerBase Controller { get; set; }
protected ViewBase(Shell shell, ControllerBase controller)
{
Shell = shell;
Controller = controller;
}
}
TCL можно запрограммировать полностью в интерактивном режиме, и можно точно определить новые процедуры tcl (или переопределить существующие) без сохранения в файле.
Конечно, если вы разрабатываете и все приложение в какой-то момент вы хотите сохранить в файл, иначе вы потеряете все. Используя TCL интроспективные способности, его относительно легко выгрузить часть или все текущее состояние интерпретатора в файл tcl (я написал процедуру, чтобы сделать это проще раньше, однако в основном я бы просто развить в файле в первую очередь, и иметь функцию в приложении для самих ресурсов, если его источник изменяется).
-121--4538122-Я полагаю, что вы не хотите разбивать его на массив, а скорее вводите места в последовательность? Если да, можно использовать регулярное выражение для замены каждого символа верхнего регистра символом [пробел]. Вам нужно обрезать ведущее пространство.
К сожалению, чтобы ответить на полный вопрос, можно сделать его более универсальным, передав в регулярное выражение совпадение и последовательность для замены совпадений.
Глядя на http://msdn.microsoft.com/en-us/library/system.text.regularexpressions.matchevaluator.aspx , не могли бы вы считать MatchEvaluator своим предикатом?
-121--4435064-Обратите внимание, что я не изменял XAML файлы, поэтому они по-прежнему используют тэги
В этом ваша проблема. Необходимо изменить
<UserControl ...>
...
</UserControl>
на
<local:ViewBase xmlns:local="clr-namespace:..."
...
</local:ViewBase>
Проблема заключается в том, что компилятор наследует ViewBase
в одном месте (файл .cs ) и UserControl
в другом (файл .xaml ).