2011-12-29 15 views
5

मैं सरल उपयोगिता वर्ग बनाना चाहता हूं जिसमें कोई दृश्य तत्व नहीं है और इसे XAML में बनाएं ताकि मैं डेटाबेस को परिभाषित कर सकूं। मैंने DependencyObject से प्राप्त कक्षा बनाने की कोशिश की और इसे Window.Resources अनुभाग में बनाया लेकिन यह किसी भी निर्माता को कॉल नहीं करता है।एक्सएएमएल में कक्षा का उदाहरण कैसे बनाएं?

+0

मैं इस समस्या के लिए गंदा वैकल्पिक हल मिल गया है: तो कक्षा स्रोत में तुम इतनी तरह एक विधि होनी चाहिए। – Poma

+0

अच्छा थोड़ा हैक :) – BigL

उत्तर

1

ऐसा लगता है कि जब आप वास्तव में उनका उपयोग करते हैं तो उदाहरण बनाए जाते हैं। मुझे इस समस्या के लिए गंदा कामकाज मिला है - मुख्य फॉर्म कन्स्ट्रक्टर में FindResource("myClass"); रखने के लिए।

4

आप App.xaml में अपने वर्ग का दृष्टांत सकते हैं, बस

xmlns:yourNamespace="clr-namespace...." 

साथ यह करने के लिए अपने नाम स्थान जोड़ने यह आसान IntelliSense मदद करता है।

और फिर Application.Resources में आप अपने वर्ग

<Application.Resources> 
    <yourNamespace:YourClass x:Key="yourClassInstanteName" />  
</Application.Resources> 

मुझे आशा है कि इस मदद करता है बनाएँ।

+0

मैंने ऐसा किया। समस्या यह है कि कक्षा का उदाहरण रन टाइम पर नहीं बनाया गया है (बस कन्स्ट्रक्टर में ब्रेकपॉइंट ड्रॉप करने का प्रयास करें)। – Poma

+3

ऐसा लगता है कि जब आप वास्तव में * उन्हें – Poma

+0

हां उपयोग करते हैं तो उदाहरण बनाते हैं, लेकिन आपकी बाइंडिंग इसका उपयोग कर रही हैं, इसलिए इसे – BigL

0

मुझे पता है कि मैं एक पुराने प्रश्न पर पोस्ट कर रहा हूं लेकिन जवाबों को खोजने का प्रयास करते समय मैं इस पर आया। कोड बड़ा एल तैनात वास्तव में सही था:

xmlns:yourNamespace="clr-namespace...." 

प्लेस आवेदन संसाधन में एक प्रतिलिपि:

<Application.Resources> 
    <yourNamespace:YourClass x:Key="yourClassInstanteName" />  
</Application.Resources> 

इस जानकारी के लिए अतिरिक्त महत्वपूर्ण यह है कि वर्ग एक डिफ़ॉल्ट निर्माता की जरूरत है। `मुख्य रूप कंस्ट्रक्टर में;` जगह FindResource ("myClass") -

public yourClassName() 
संबंधित मुद्दे