SelectedItem
SelectionChanged
Надо получить данные данные из lable у которого имя Name.
Control
и вперед. Логика самого интерфейса вполне нормально живет в самих классах элементов управления (в терминах MVVM это два в одном View + ViewModel). Например, реальный случай из практики: запилил WF приложение по выданному дизайну - его потестили и почти сразу дизайнер нарисовал полностью новый дизайн; ввиду увеличения фишечек, рюшечек и всего остального (а так же тормозов древнего легаси наследия WF, конечно же) - я просто перенес файлы с логикой из WF проекта в WPF проект в модели и запилил новый GUI на WPF. Input
или от InputBase
(если разметка своя нужна и чтобы не плодить перезапись оригинальной), реализуется стандартный механизм работы поля пароля (поля PasswordChar, SecurePassword и замена вводимого символа на символ из PasswordChar), в нем вешается обработчик на изменение поля, а уже там и проверяется сам пароль и далее выставляется поле HintVisibility
(через флаг неудобно будет в XAML) и HintType
(обычный enum
- опять же в XAML удобнее сразу привязываться к конкретному значению). Соответственно в разметке шаблона просто используете этот класс вместо стандартного и привязываете к этим двум полям видимость самой подсказки и её текст через определение её типа. Почему надо делать именно так: потому что сам пароль хранится в поле типа SecureString
и необходимо расшифровывать строку и не сохранять ещё куда-то в расшифрованном виде (а через биндинги нельзя, да и не безопасно, даже если бы можно было). Все остальные варианты - костыли, от которых все равно в итоге придешь к наследованию от базового класса.