Вопрос

Я новичок в WPF и в духе пытался сделать то, что правильный путь пытался реализовать MVVM в моем приложении. Я использовал часто упомянутую статью Джош Смита, а кроме того, заставляя меня осознать, как мало я знаю, это оставило меня немного ошенутым.

В частности, у меня есть страница, которая использует объект RelayCommand для обработки кнопки непосредственно на странице, и это нормально. Тем не менее, кнопка (Сохранение) в конечном итоге будет на контроле пользователя, которое также будет содержать другие кнопки, и элемент управления будет использоваться на нескольких страницах.

Мой вопрос в том, это; Как решить команду от управления пользователем на страницу (т. Е. ViewModel), содержащую его? Если я свяжусь с командой

public ICommand SaveCommand
{
  get
  {
    if (_saveCommand == null)
    {
      _saveCommand = new RelayCommand(
          param => this.Save(),
          param => this.CanSave
          );
    }
    return _saveCommand;
  }
}

На контроле пользователей мне нужно будет использовать метод сохранения на сам элементу управления пользователем, когда на самом деле я должен обрабатывать его на ViewModel.

Может кто-нибудь помочь?

Это было полезно?

Решение

Итак, вам нужно связать с родителями (страницей) DataContext (ViewModel)? Попробуйте привязать к Savecommand с использованием RuctiveReource: http://msdn.microsoft.com/en-us/library/ms743599.aspx.

Другие советы

Попробуйте исследовать это один. Отказ Это поможет вам многое условий привязки и команды реле.

С вашей заботой вам необходимо связать datacontext элемента управления пользователями пользователя. Если вы собираетесь использовать кнопку для вашей команды сохранения. попробуй это:

<Grid x:Name="LayoutRoot" DataContext="{ yourViewModelHere }">
      <Button x:Name="btnSave" Command="{Binding SaveCommand}"/>
</Grid>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top