2011-10-27 13 views
10

मेरे पास बहुत सी एक्सएएमएल फाइलों के साथ काफी बड़ा WPF एप्लिकेशन है। प्रत्येक एकल एक्सएएमएल फ़ाइल 5 से 10 क्लियर से xml नेमस्पेस मैपिंग xmlns:abc="clr-namespace:Abcdef" तक है।
यह भयानक लग रहा है और प्रत्येक फ़ाइल में लिखने का दर्द है।डब्ल्यूपीएफ - वैश्विक स्तर पर एक्सएएमएल नेमस्पेस घोषणा

क्या वैश्विक स्तर पर उनको परिभाषित करने का कोई तरीका है?

उत्तर

13

फ़ाइलों में वैश्विक स्तर पर उन्हें परिभाषित करने का कोई तरीका नहीं है। यह एक्सएमएल की एक सीमा है; एक्सएएमएल इसका सबसेट है।

लेकिन अगर आप उन्हें एक बिट का उपयोग कर XmlnsDefinition

यह लेख देखें साफ कर सकते हैं: http://zachbonham.blogspot.com/2010/04/organize-xaml-namespace-declarations.html

आप इस XAML के साथ शुरू करते हैं:

<UserControl 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:treeView="clr-namespace:MaryKay.SamPortal.Common.UI.TreeView.Views;assembly=MaryKay.SamPortal.Common.UI" 
    xmlns:infoBar="clr-namespace:MaryKay.SamPortal.Common.UI.InfoBar.Views;assembly=MaryKay.SamPortal.Common.UI"> 
    <infoBar:InformationBar DataContext="{Binding InfoBar}"/> 
</UserControl> 

और इन XmlnsDefinition गुण कहा:

[assembly: XmlnsDefinition("urn:marykay-samportal-common-ui", "MaryKay.SamPortal.Common.UI.InfoBar.Views")] 
[assembly: XmlnsDefinition("urn:marykay-samportal-common-ui", "MaryKay.SamPortal.Common.UI.RoleGroupPicker.Views")] 
[assembly: XmlnsDefinition("urn:marykay-samportal-common-ui", "MaryKay.SamPortal.Common.UI.BetterPopup")] 
[assembly: XmlnsDefinition("urn:marykay-samportal-common-ui", "MaryKay.SamPortal.Common.UI.TextEditor")] 
[assembly: XmlnsDefinition("urn:marykay-samportal-common-ui", "MaryKay.SamPortal.Common.UI.Converters")] 
[assembly: XmlnsDefinition("urn:marykay-samportal-common-ui", "MaryKay.SamPortal.Common.UI.Documents")] 
[assembly: XmlnsDefinition("urn:marykay-samportal-common-ui", "MaryKay.SamPortal.Common.UI.SplashScreen")] 
[assembly: XmlnsDefinition("urn:marykay-samportal-common-ui", "MaryKay.SamPortal.Common.UI.TemplateSelector")] 
[assembly: XmlnsDefinition("urn:marykay-samportal-common-ui", "MaryKay.SamPortal.Common.UI.ModalDialog")] 
[assembly: XmlnsDefinition("urn:marykay-samportal-common-ui", "MaryKay.SamPortal.Common.UI.ConsultantSearch.Views")] 
// etc... 

आप इसके बजाय इस एक्सएएमएल के साथ समाप्त हो सकते हैं:

<UserControl 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:commonUI="urn:marykay-samportal-common-ui"> 
    <commonUI:InformationBar DataContext="{Binding InfoBar}"/> 
</UserControl> 
+0

मुझे किसी भी असेंबली में परिभाषित नामस्थान का संदर्भ देते समय काम करने के लिए कोई भाग्य नहीं है। – Maslow

+0

@ मास्लो http://stackoverflow.com/questions/4225072/refering-to-another-project-in-xaml-undefined-clr-namespace –

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