powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / снова биндинги
14 сообщений из 14, страница 1 из 1
снова биндинги
    #36842250
Crossificio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
у меня есть на форме два текстовых поля: логин и пароль, текст которых биндиться на свойства:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
public static readonly DependencyProperty PasswordProperty = DependencyProperty.Register("Password", typeof(string), typeof(SplashLoginWindow), new UIPropertyMetadata(String.Empty));
        public static readonly DependencyProperty LoginProperty = DependencyProperty.Register("Login", typeof(string), typeof(SplashLoginWindow), new UIPropertyMetadata(String.Empty));

 public string Password
        {
            get { return GetValue(PasswordProperty).ToString(); }
            set { SetValue(PasswordProperty, value); }
        }

public string Login
        {
            get { return GetValue(LoginProperty).ToString(); }
            set { SetValue(LoginProperty, value); }
        }

И есть также кнопка, которая должна быть недоступна пока не заполнены поля логин и пароль, то есть они непустые.

Как сделать для этой кнопки необходимый биндинг?
...
Рейтинг: 0 / 0
снова биндинги
    #36842566
Вестник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
попробуйте так: <Button x:Name="MyButton" IsEnabled="{Binding ElementName=MyControl, Converter=MyConverter}"/>
MyControl - имя самого верхнего контрола
MyConverter - конвертер (см IValueConverter), анализирует состояние указанных свойств

но лучше перейти на MVVM, где Password, Login - свойства у ViewModel, как описаны у вас. а bool ButtonEnabled - свойство, которое возвращает нужное значение в зависимости от Password/Login
...
Рейтинг: 0 / 0
снова биндинги
    #36844392
Crossificio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
а что лучше всего почитать по MVVM для WPF? или в связи со "смертью" WPF уже и не стоит)))
...
Рейтинг: 0 / 0
снова биндинги
    #36844420
Вестник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
см тут http://sql.ru/forum/actualthread.aspx?tid=787935, там есть ссылка на книгу. кроме того, там же есть ссылка на отзыв о ней, а в отзыве -- ссылка на ответ на отзыв. основные претензии к книге - не стоит она $15, модель в ней вырождена и склеена с ViewModel...

впитаете весь материал (книгу, отзыв, ответ на отзыв), поймете аргументы обеих сторон -- можно сказать, что курс молодого бойца прошли.

можно дальше смотреть на prism , который в версии 4 сделал явный акцент на MVVM. до этого MVVM был представлен бледной тенью закулисного приведения. там же есть quickstart по MVVM

ЗЫ в вашем случае речь идет о кнопке Logon, насколько я понял. если так, то в этом случае переключение IsEnabled через MVVM делать не удобно, т.к. TextBox по умолчанию биндит обратно целиком строку, а не каждое нажатие. наверное, придется отслеживать KeyDown процедурно и взводить IsEnabled. и посмотрите на то, как реализован Logon в шаблоне Silverlight Business Application, может и не придется велосипед изобретать
...
Рейтинг: 0 / 0
снова биндинги
    #36844502
Crossificio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо большое за столь содержательный ответ, попробую
...
Рейтинг: 0 / 0
снова биндинги
    #36844711
i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
i
Гость
[quot Вестник
ЗЫ в вашем случае речь идет о кнопке Logon, насколько я понял. если так, то в этом случае переключение IsEnabled через MVVM делать не удобно, т.к. TextBox по умолчанию биндит обратно целиком строку, а не каждое нажатие. [/quot]
Очень даже удобно.Для TextBox свойству UpdateSourceTrigger можно задать значение - PropertyChanged. В этом случае будет отслеживаться каждое нажатие.
...
Рейтинг: 0 / 0
снова биндинги
    #36844746
Вестник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
я знаю, я так и написал "по умолчанию". мне показалось, что полноценный биндинг тут будет избыточен и достаточно отследить факт нажатий в каждом поле. но, подумавши, соглашусь, что так будет проще, т.к. иначе придется считать бекспейсы, делиты и удаление выделением
...
Рейтинг: 0 / 0
снова биндинги
    #36848747
Crossificio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Такого шаблона Silverlight Business Application у меня нет.
Посомтрел здесь - тоже пусто.
C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE\ProjectTemplates\CSharp\Silverlight\1033\

Помогите сделать примерчик, пожалуйста.
...
Рейтинг: 0 / 0
снова биндинги
    #36848923
Вестник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
странно. file/new/project должен показать вот такую картинку (приложено)
...
Рейтинг: 0 / 0
снова биндинги
    #36848978
Crossificio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вестник, если сможете, то ведерите, пожалуйста, необходимый код или файлы и прикрепите сюда, а я попытаюсь разобраться.
...
Рейтинг: 0 / 0
снова биндинги
    #36848989
Вестник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
см вложение
...
Рейтинг: 0 / 0
снова биндинги
    #36849007
Crossificio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо огромное, буду рзбираться
...
Рейтинг: 0 / 0
снова биндинги
    #36849020
Вестник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
на сладкое
...
Рейтинг: 0 / 0
снова биндинги
    #36849218
Crossificio
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
спасибо
...
Рейтинг: 0 / 0
14 сообщений из 14, страница 1 из 1
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / снова биндинги
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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