Sto usando VS2013 Express. Sono abbastanza nuovo in WPF e MVVM. Ho scaricato mvvmlight usando NuGet per il mio progetto. Sto cercando di usare GalaSoft_MvvmLight_Command:EventToCommand
. Per quanto ne so, devo aggiungere di riferimento in XAML con l'aggiunta dello spazio dei nomi:Dove trovo l'assemblaggio Galasoft.MvvmLight.WPF45?
xmlns:GalaSoft_MvvmLight_Command="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight"
Ma, sfortunatamente ottengo l'errore, che dice:
Il tag 'EventToCommand' non esiste in XML namespace 'clr-namespace: GalaSoft.MvvmLight; assembly = GalaSoft.MvvmLight'.
Ho trovato alcune informazioni, che devo includere GalaSoft.MvvmLight.WPF45
montaggio, ma non vedo questa dll in pacchetti \ MvvmLightLibs.5.0.0.1 \ lib \ cartella. Ci sono molte cartelle, per ogni versione .NET ecc., Ma ognuno di questi nomi di assembly è lo stesso, senza sufix WPF45. Cosa sta succedendo? Dove posso trovare questo assembly GalaSoft.MvvmLight.WPF45.dll? O forse nella versione 5 sono state apportate alcune modifiche ai nomi?
Modifica: Utilizzo del browser degli oggetti Ho rilevato che EventToCommand
è in GalaSoft.MvvmLight.Platform assembly in GalaSoft.MvvmLight.Command namespace. Così ho fatto
xmlns:GalaSoft_MvvmLight_Command="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Platform"
posso compilare progetto ora, ma ho ancora ottenere gli errori in XAML (ciò che è strano):
Un valore di tipo 'EventToCommand' non può essere aggiunto a una raccolta o un dizionario di tipo 'TriggerActionCollection'
e
Il tipo 'EventToCommand' dall'assembly 'Ga laSoft.MvvmLight.Platform 'è costruito con una versione precedente di Blend SDK e non è supportato in un progetto di Windows Presentation Framework 4.
e l'editor xaml non possono visualizzare correttamente la finestra (markup non valido).
Edit2:
Soluzione per il markup non valido.
Dopo aver modificato lo spazio dei nomi su xmlns:cmd="http://www.galasoft.ch/mvvmlight"
, cambio anche il framework di destinazione del progetto da 4,5 a 3,5. L'IDE mostra un errore riguardo al fatto che ci sono pochi pacchetti NuGet che hanno come target altri framework, quindi sono tornato a 4.5 - e ora funziona magicamente;). Grazie a tutti per l'aiuto.
Prova questa. xmlns: cmd = "CLR-namespace: GalaSoft.MvvmLight.Command; assemblaggio = GalaSoft.MvvmLight.Platform". È necessario anche [questo] (https://www.nuget.org/packages/Expression.Blend.Sdk/) pacchetto nuget – VivekDev