object ByteArrayToStructure(byte[] bytearray, object structureObj, int position)
{
int length = Marshal.SizeOf(structureObj);
IntPtr ptr = Marshal.AllocHGlobal(length);
Marshal.Copy(bytearray, 0, ptr, length);
structureObj = Marshal.PtrToStructure(Marshal.UnsafeAddrOfPinnedArrayElement(bytearray, position), structureObj.GetType());
Marshal.FreeHGlobal(ptr);
return structureObj;
}
У этого
Я думаю, чтобы быть честным Вы лучшее просто обвалка на Ваших стандартных шаблонах разработки и применении их к отдельным проблемам, с которыми Вы сталкиваетесь в разработке Вашего UI.
В то время как существует общий UI "темы" (такие как контакт с модифицирующими клавишами), фактическая реализация может значительно различаться.
У меня есть Главные Первые Шаблоны разработки O'Reilly и Плакат, который я нашел неоценимыми!
Я не думаю, что преимущество шаблонов разработки прибывает из попытки найти, что шаблон разработки соответствует проблеме. Можно однако использовать некоторую эвристику, чтобы помочь очистить дизайн в этом вполне немного, как хранение UI, максимально отделенного от остальной части объектов в системе.
Существует шаблон, который мог бы выручить в этом случае, Шаблон The Observer.
Я знаю, что Вы сказали не столь глобальный как MVC, но существуют некоторые вариации на MVC - конкретно HMVC и PAC - который я думаю, может ответить на вопросы, такие как те, Вы позируете.
Кроме этого, попытайтесь написать новый код "в духе" существующих шаблонов, даже если Вы не применяете их непосредственно.
возможно, Вы ищете что-то как 'Мышеловка', которую я видел в некоторых статьях о codeproject (поиск Платформы UI)?
Я также нашел этот ряд очень полезным http://codebetter.com/jeremymiller/2007/07/26/the-build-your-own-cab-series-table-of-contents/, где Вы могли бы взглянуть на встроенные контроллеры и т.д.
Micha.
В книге Кей Хорстманна "Объектно-ориентированное проектирование и паттерны" есть глава под названием "Паттерны и программирование графического интерфейса". В этой главе Хорстманн затрагивает следующие паттерны: