Frage

Ich habe ein VehicleViewModel bekam, die eine Unteransichtsmodell von NotesViewModel hat

public IManageVehicleNotesViewModel NotesViewModel { get; set; }

Auf der ersten Aktivierung von VehicleViewModel ich das Unteransichtsmodell aktivieren.

NotesViewModel.Activate();

Die Aktivierung ruft eine Methode eine Reihe von Befehlen an init, ich habe Pause zeigte dies und seine aufgerufen wird.

CreateCommand = new DelegateCommand<object>(OnCreateCommand, CanCreate);

Doch obwohl die Textfelder auf dem Unteransicht verbindlich sind (so die Datacontext ist vorhanden) keiner der Befehle verbindlich sind - ich habe versucht zu rufen RaiseCanExecuteChanged auf die Befehle, aber sie nicht deaktivieren, aktivieren oder die Methoden aufrufen wie erwartet.

Ich weiß nicht, ob sein relevant (da die Textfelder sind verbindlich), aber ich bin Assoziieren der Ansicht und Ansichtsmodell eines Resource als so mit ...

<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:v="clr-namespace:GTS.GRS.N3.Modules.Vehicles.Views"
    xmlns:vm="clr-namespace:GTS.GRS.N3.Modules.Vehicles.Model">
  <DataTemplate DataType="{x:Type vm:ManageVehicleViewModel}">
    <v:ManageVehicleView />
  </DataTemplate>
  <DataTemplate DataType="{x:Type vm:ManageVehicleNotesViewModel}">
    <v:ManageVehicleNotesView />
  </DataTemplate>
</ResourceDictionary>

Die Befehle auf der obersten Ebene VehicleViewModel Arbeit.

Hat jemand etwas erlebt? Ist es die Reihenfolge ich die Dinge tue? Jede Hilfe dankbar empfangen!

Cheers,

Andy

War es hilfreich?

Lösung

Ist die CreateCommand Eigenschaft löst das PropertyChanged Ereignis? Wenn dies nicht der Fall, wird die UI nicht benachrichtigt, wenn Sie es zuweisen ...

Versuchen Sie, ein Tool wie Snoop verwenden, um zu überprüfen, ob die Command Eigenschaft der Schaltfläche gesetzt

Andere Tipps

Tun Sie dies und überprüfen Sie die Ausgabe, um zu sehen, was los ist:

<UserControl …
     xmlns:diagnostics="clr-namespace:System.Diagnostics;assembly=WindowsBase" />

<Button Command="{Binding MyCommand, 
                  diagnostics:PresentationTraceSources.TraceLevel=High}" … />

Es sollte berichten, was das Objekt es tatsächlich zu, usw. zu binden versuchen, Ihr Ausgabefenster überprüfen, während Sie sehen laufen, was mit sich geht, dass die Bindung.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top