powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / WPF базовый Control и его шаблонъ
16 сообщений из 16, страница 1 из 1
WPF базовый Control и его шаблонъ
    #39224796
...Андрей...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Желание имею наваять контрол (К) у которва будет функционал (Ф), который будет наследоваться другими контролами. Там, я не знаю, какая-нибудь супер-кнопка будет появляться на наследниках.

Создал класс наследующий ContentControl в .cs- файле, теперь мне нужно ту самую кнопку встроить, я бы сделал это в шаблоне, но вопрос: как шаблон прицепить к этому базовому классу? - XAMLа-то у него нет.

Для экспериментов вписал Template = FindResource(.. в конструкторе или около того контрола К, но это работает, если сам шаблон подключать ресурсом на уровне ресурсов приложения.
...
Рейтинг: 0 / 0
WPF базовый Control и его шаблонъ
    #39224810
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
создать в сборке папку Themes, в папке Themes файл Generic.xaml (ResourceDictionary), создать в файле стиль с ключем
{x:Type типтвоегоконтрола}, в стиле задать шаблон. Профит.
...
Рейтинг: 0 / 0
WPF базовый Control и его шаблонъ
    #39224860
...Андрей...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman Mejtes,

*** волшебненько ***.

Спасибо
...
Рейтинг: 0 / 0
WPF базовый Control и его шаблонъ
    #39224865
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Roman Mejtesс ключем {x:Type типтвоегоконтрола}Не в первый раз попадается такое задание ключа - это просто удобство или есть какой-то еще профит?
...
Рейтинг: 0 / 0
WPF базовый Control и его шаблонъ
    #39224918
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProRoman Mejtesс ключем {x:Type типтвоегоконтрола}Не в первый раз попадается такое задание ключа - это просто удобство или есть какой-то еще профит? ну можно и не указывать Type конечно, можно вообще не задавать Key.
но {x:Type я всегда указываю, так удобнее и понятнее.
даже для DataTemplate я обычно ключом указываю {x:Type ViewModelType}
...
Рейтинг: 0 / 0
WPF базовый Control и его шаблонъ
    #39225237
...Андрей...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
----------


У этова базового контрола имеется свойство типа ViewModelAbstract.
Планировалось в него помещать разнообразные модели и в кзамле контролов-наследников привязываться к свойствам вьюмоделей-наследников:

class ViewModelAbstract;
class DerivedVM : ViewModelAbstract
{
prop PropDerived;
}

class Ctrl :Control
{
ViewModelAbstract _VM;
}

class A : Ctrl
{
ctor()
{
_VM = new DerivedVM();
}
}

<..>

<.. Value={Binding _VM.PropDerived } />


Как-нибудь такое разрешимо?
...
Рейтинг: 0 / 0
WPF базовый Control и его шаблонъ
    #39225238
...Андрей...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хотя, конеш, ерунда какая-то..
...
Рейтинг: 0 / 0
WPF базовый Control и его шаблонъ
    #39225243
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
WPF базовый Control и его шаблонъ
    #39225244
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что мешает? Сделать это свойство DataContext-ом...
...
Рейтинг: 0 / 0
WPF базовый Control и его шаблонъ
    #39225271
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это вообще не верный подход, Control вообще не должен ни чего знать не про какие модели.
У Control должны быть свойства зависимости, через которые будет определятся его текущее состояние и внешний вид. А про классы моделей он знать не должен.
...
Рейтинг: 0 / 0
WPF базовый Control и его шаблонъ
    #39225287
...Андрей...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо

Shocker.ProА что мешает? Сделать это свойство DataContext-ом...

Тогда при вставке готового контрола в какую-нибудь форму не работают привязки от формы к этому контролу с изменённым DataContext-ом.
...
Рейтинг: 0 / 0
WPF базовый Control и его шаблонъ
    #39225296
...Андрей...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman Mejtesэто вообще не верный подход, Control вообще не должен ни чего знать не про какие модели.
У Control должны быть свойства зависимости, через которые будет определятся его текущее состояние и внешний вид. А про классы моделей он знать не должен.

авторНеоднократно слышал это.. Да. Ну и пускай :(. может я PhD по неверному проектированию. Может даже Президент медаль приколет.. когда-нибудь.
-----

В общем объяснение такое: контрол добавляет всем наследникам определенную реакцию на события вьюмодели - начата/окончена операция к бд и ещё там несколько непереводимых. Скажем, пока к бд запросы идут, контрол должен символизировать песочными часами.
...
Рейтинг: 0 / 0
WPF базовый Control и его шаблонъ
    #39225299
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Логично. Просто нужно контекстом делать не сам UserControl, а его дочерний элемент
...
Рейтинг: 0 / 0
WPF базовый Control и его шаблонъ
    #39225316
Roman Mejtes
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это очень плохая и опасная практика, подписываться на события модели из View и наоборот, потом с высвобождением этих ресурсов могут возникнуть проблему, так как подписавшись, будет сложно понять, когда от них отписываться.
Лучше использовать ICommand или на крайняк использовать связывание с Delegat'ом
...
Рейтинг: 0 / 0
WPF базовый Control и его шаблонъ
    #39225320
...Андрей...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProЛогично. Просто нужно контекстом делать не сам UserControl, а его дочерний элемент

Попробую завтра
...
Рейтинг: 0 / 0
WPF базовый Control и его шаблонъ
    #39225321
...Андрей...
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Roman Mejtesэто очень плохая и опасная практика, подписываться на события модели из View и наоборот, потом с высвобождением этих ресурсов могут возникнуть проблему, так как подписавшись, будет сложно понять, когда от них отписываться.
Лучше использовать ICommand или на крайняк использовать связывание с Delegat'ом

Спасибо за критику, обдумаю.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / WPF базовый Control и его шаблонъ
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]