powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / mvvm в контексте разработки user control
9 сообщений из 9, страница 1 из 1
mvvm в контексте разработки user control
    #37325953
Фотография Esofter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Делаю юзер контрол, хочется сделать по шаблону мввм

Проблема собственно вот в чем. Во всех примерах имеется некий Application в методе onStartup() которого мы инициализируем ДатаКонтекст представления и показываем его методом Show(). А как показывать контролы?
...
Рейтинг: 0 / 0
mvvm в контексте разработки user control
    #37325974
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А зачем руками создавать контекст? Декларативно работайте.

Код: plaintext
xmlns:model="clr-namespace:...Categories.Models"

Код: plaintext
1.
2.
<navigation:Page.DataContext>
    <model:CategoryViewModel />
</navigation:Page.DataContext>
...
Рейтинг: 0 / 0
mvvm в контексте разработки user control
    #37325979
Фотография Esofter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
проблема не в этом
...
Рейтинг: 0 / 0
mvvm в контексте разработки user control
    #37326043
Фотография Esofter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вопрос снят
...
Рейтинг: 0 / 0
mvvm в контексте разработки user control
    #37326494
Фотография МСУ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Esofterпроблема не в этом
Слушаю.
Esofterвопрос снят
Разверните ответ, а не плюйте семячками там, где находитесь.
...
Рейтинг: 0 / 0
mvvm в контексте разработки user control
    #37328784
Фотография Esofter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
в общем с тем я уже разобрался. сейчас проблема с паттерном ICommand

Есть кнопка

Код: plaintext
1.
2.
3.
<Button Content="login" Height="23" HorizontalAlignment="Left" Margin="271,94,0,0" Name="btnLogin" VerticalAlignment="Top" Width="75"
                Command="{Binding LoginCommand}"
                />

а вот кусок ВьюМодел

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
public ICommand LoginCommand
        {
            get
            {
                if(_loginCommand!=null)
                {
                    _loginCommand = new RelayCommand(p => DoLogin(),
                                                        p => CanDoLogin());
                }
                return _loginCommand;
            }
        }

      
        public void DoLogin()
        {
            if(!CanDoLogin()) return;
            
        }

       
        public bool CanDoLogin()
        {
            return true;
            return !string.IsNullOrEmpty(_login)
                   && !string.IsNullOrEmpty(_password)
                   && !string.IsNullOrEmpty(_companyName);
        }


ставил брекпоинт - биндинг отрабатывает, но когда жмакаю на кнопку - никакой реакции. В чем может быть проблема?
...
Рейтинг: 0 / 0
mvvm в контексте разработки user control
    #37328795
Фотография Esofter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
то есть при биндинге мы пападаем к свойству LoginCommand. которое возвращает нам комманду, но вот когда жмакнуть кнопку - должен выполнятся метод DoLogin. Но не выполняется.
...
Рейтинг: 0 / 0
mvvm в контексте разработки user control
    #37328799
Фотография Esofter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ах да. Релай комманд

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
public class RelayCommand : ICommand
{
    #region Fields

    readonly Action<object> _execute;
    readonly Predicate<object> _canExecute;        

    #endregion // Fields

    #region Constructors

    public RelayCommand(Action<object> execute)
    : this(execute, null)
    {
    }

    public RelayCommand(Action<object> execute, Predicate<object> canExecute)
    {
        if (execute == null)
            throw new ArgumentNullException("execute");

        _execute = execute;
        _canExecute = canExecute;           
    }
    #endregion // Constructors

    #region ICommand Members

    [DebuggerStepThrough]
    public bool CanExecute(object parameter)
    {
        return _canExecute == null ? true : _canExecute(parameter);
    }

    public event EventHandler CanExecuteChanged
    {
        add { CommandManager.RequerySuggested += value; }
        remove { CommandManager.RequerySuggested -= value; }
    }

    public void Execute(object parameter)
    {
        _execute(parameter);
    }

    #endregion // ICommand Members
}


...
Рейтинг: 0 / 0
mvvm в контексте разработки user control
    #37328917
Фотография Esofter
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
детская ошибка :)

в проверке

Код: plaintext
1.
2.
3.
4.
5.
if(_loginCommand!=null)
                {
                    _loginCommand = new RelayCommand(p => DoLogin(),
                                                        p => CanDoLogin());
                }

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


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