Frage

Ich bin neu in WPF und im Geist der versucht, die Dinge die richtige Art und Weise zu tun haben versucht MVVM in meiner Anwendung zu implementieren. Ich habe Nutzung der häufig erwähnten Artikel von Josh Smith gemacht, und außer macht mir klar, wie wenig ich weiß, es hat mich ein wenig ratlos.

Insbesondere habe ich eine Seite, die das RelayCommand Objekt verwendet eine Schaltfläche direkt auf der Seite zu handhaben und das ist in Ordnung. Jedoch kann die Taste (Speicher) wird schließlich auf einer Benutzersteuerung, die auch andere Tasten enthält und die Steuerung wird auf einer Anzahl von Seiten verwendet werden.

Meine Frage ist; wie kann ich den Befehl von der Benutzersteuerung auf der Seite (dh Ansichtsmodell), die es Relais? Wenn ich binden an den Befehl

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

auf der Benutzersteuerung, würde ich brauche eine Save-Methode auf der Benutzersteuerung verwenden, selbst wenn in der Tat soll ich es auf dem Viewmodel werden handhaben.

Kann mir jemand helfen?

War es hilfreich?

Lösung

So, müssen Sie binden sich an Eltern (Seite) Datacontext (Viewmodel)? Versuchen Sie die Bindung an SaveCommand mit Relative: http://msdn.microsoft.com/en -US / library / ms743599.aspx

Andere Tipps

Versuchen Sie, diese ein zu erkunden. Es wird Ihnen helfen, eine Menge es hinsichtlich der Bindung und Relais-Befehl.

Mit Ihrer Sorge, Sie müssen die Benutzer die Kontrolle des Datacontext binden. Wenn Sie gehen, einen Knopf für Ihren speichern Befehl zu verwenden. versuchen Sie dies:

<Grid x:Name="LayoutRoot" DataContext="{ yourViewModelHere }">
      <Button x:Name="btnSave" Command="{Binding SaveCommand}"/>
</Grid>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top