2014-10-13 20 views
5

मैं वीएस2013 एक्सप्रेस का उपयोग कर रहा हूं। मैं डब्ल्यूपीएफ और एमवीवीएम में काफी नया हूं। मैंने अपनी परियोजना में NuGet का उपयोग करके mvvmlight डाउनलोड किया है। मैं GalaSoft_MvvmLight_Command:EventToCommand का उपयोग करने के लिए tryinng हूँ। जहाँ तक मुझे पता है, मैं नाम स्थान जोड़कर XAML में संदर्भ जोड़ने के लिए:मुझे Galasoft.MvvmLight.WPF45 असेंबली कहां मिलती है?

xmlns:GalaSoft_MvvmLight_Command="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight" 

लेकिन, Unfortunatelly मैं त्रुटि हो, कि कहते हैं:

टैग 'EventToCommand' एक्सएमएल में मौजूद नहीं है नेमस्पेस 'क्लियर-नेमस्पेस: गैलासोफ्ट.एमवीवीएमलाइट; असेंबली = गैलासोफ्ट.एमवीवीएमलाइट'।

मैं कुछ जानकारी मिली है, मैं GalaSoft.MvvmLight.WPF45 विधानसभा शामिल करने के लिए है, लेकिन मैं \ फ़ोल्डर lib संकुल \ MvvmLightLibs.5.0.0.1 \ में इस dll नहीं दिख रहा। प्रत्येक .NET संस्करण आदि के लिए कई फ़ोल्डर्स हैं, लेकिन इनमें से प्रत्येक असेंबली नाम समान हैं, WPF45 प्रत्यय के बिना। क्या चल रहा है? मुझे यह GalaSoft.MvvmLight.WPF45.dll असेंबली कहां मिलती है? या शायद संस्करण 5 में नामों में कुछ बदलाव किए गए थे?

संपादित करें: वस्तु ब्राउज़र का उपयोग करना मैंने पाया कि EventToCommand GalaSoft.MvvmLight.Command नाम स्थान में GalaSoft.MvvmLight.Platform विधानसभा में है। तो मैंने किया था

xmlns:GalaSoft_MvvmLight_Command="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Platform" 

मैं अब परियोजना संकलन कर सकते हैं, लेकिन मैं अभी भी XAML में त्रुटियों मिल (क्या अजीब है):

प्रकार का मान 'EventToCommand' एक संग्रह या शब्दकोश में नहीं जोड़ा जा सकता प्रकार के 'TriggerActionCollection'

और

विधानसभा से

प्रकार 'EventToCommand' 'गा laSoft.MvvmLight.Platform 'ब्लेंड एसडीके के पुराने संस्करण के साथ बनाया गया है, और विंडोज प्रेजेंटेशन फ्रेमवर्क 4 प्रोजेक्ट में समर्थित नहीं है।

और xaml संपादक विंडो को ठीक से प्रदर्शित नहीं कर सकता (अवैध मार्कअप)।

संपादन 2:

अमान्य मार्कअप के लिए समाधान।

नामस्थान को xmlns:cmd="http://www.galasoft.ch/mvvmlight" में बदलने के बाद मैंने परियोजना के लक्ष्य ढांचे को 4.5 से 3.5 तक बदल दिया। आईडीई में कुछ नुगेट पैकेज हैं जो अन्य ढांचे को लक्षित करते हैं, इस बारे में एक त्रुटि दिखाती है, इसलिए मैं 4.5 पर लौट आया - और यह अब जादुई रूप से काम करता है;)। मदद के लिए सभी को धन्यवाद।

+0

इस प्रयास करें। xmlns: cmd = "clr-नाम स्थान: GalaSoft.MvvmLight.Command; विधानसभा = GalaSoft.MvvmLight.Platform"। तुम भी जरूरत है [इस] (https://www.nuget.org/packages/Expression.Blend.Sdk/) nuget पैकेज – VivekDev

उत्तर

3

यहाँ अब इसकी कैसे किया अपने XAML मानते हुए कि आपके संस्करण 4.0.0 मिल गया है में है। मारो 1 या उच्चतर:

xmlns: cmd = "http://www.galasoft.ch/mvvmlight"

मैं तल पर यह पाया रिहाई यहाँ नोट: http://www.mvvmlight.net/installing/changes/

विवरण अतिरिक्त विधानसभा XmlnsDefinitionAttribute के अलावा करने के लिए

धन्यवाद में GalaSoft.MvvmLight.Command के लिए XmlnsDefinitionAttribute, आप XAML में MVVM लाइट EventToCommand कार्रवाई के शामिल किए जाने को आसान बनाने में कर सकते हैं। पहले और नीचे के बाद देखें:

से पहले:

<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" 

xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras.SL4" 

xmlns:cmd="http://www.galasoft.ch/mvvmlight" 
x:Class="MvvmLight4.MainPage"> 

के बाद:

<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity" 
xmlns:cmd="http://www.galasoft.ch/mvvmlight" 
x:Class="MvvmLight4.MainPage"> 
+0

मैंने नामस्थान बदल दिए हैं, लेकिन फिर भी पुराने संस्करण के साथ त्रुटि हो रही है। लेकिन धन्यवाद, यह अब ठीक काम करता है। –

+0

WPF 4.5 के साथ मेरे लिए काम नहीं किया - अभी भी वही त्रुटि मिल रही है! – Thierry

+0

अंतर का एक झटका नहीं बनाया। माफ़ कीजिये। – AndyUK

0

EventToCommandExtras असेंबली में मौजूद है।

प्रयास करें:

xmlns:GalaSoft_MvvmLight_Command="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras" 

अधिक जानकारी:

विधानसभा एक वर्ग में गिर जाता है, मैं आमतौर पर जाओ करने के लिए परिभाषा और विधानसभा निर्धारित करने के लिए इस क्षेत्र में संदर्भित है [मेटाडाटा से] कोड फ़ाइल का शीर्ष।

+0

अब मैं अपरिभाषित CLR नाम स्थान प्राप्त;)। पहली पोस्ट अपडेट की गई। –

+0

एक WPF 4.5.2 के साथ-साथ इस की कोशिश की, और @BartoszRosa के रूप में, मैं 'EventToCommand' नाम स्थान और एक दूसरे त्रुटि अर्थात EventToCommand मौजूद नहीं है में मौजूद नहीं है। – Thierry

संबंधित मुद्दे