XAML

2012-11-13 7 views
10

से संदर्भ नेस्टेड एनम प्रकार मैं XAML से सार्वजनिक नेस्टेड एनम प्रकार का संदर्भ नहीं ले सकता। मैं एक वर्गXAML

namespace MyNamespace 
{ 
    public class MyClass 
    { 
    public enum MyEnum 
    { 
     A, 
     B, 
    } 
    } 
} 

है और मैं इस तरह Xaml में MyEnum संदर्भित करने के लिए प्रयास करें:

xmlns:MyNamespace="clr-namespace:MyNamespace;assembly=MyApp" 
.... 

{x:Type MyNamespace:MyClass:MyEnum} // DOESN'T WORK 

लेकिन वी.एस. शिकायत यह जनता के प्रकार MyEnum नहीं मिल रहा। मैं भी + वाक्य रचना this post के जवाब के आधार पर उपयोग करने की कोशिश ...

{x:Type MyNamespace:MyClass+MyEnum} // DOESN'T WORK 

लेकिन है कि या तो काम नहीं करता।

ध्यान दें कि x:Static+ वाक्य रचना के साथ काम करता है:

{x:Static MyNamespace:MyClass+MyEnum.A} // WORKS 

और अगर मैं MyClass से बाहर ले जाने के MyEnum मैं भी संदर्भित कर सकते हैं। लेकिन अगर यह घोंसला नहीं है ...

तो मुझे क्या याद आ रही है? मैं x:Type का उपयोग कर XAML से नेस्टेड एनम का संदर्भ कैसे दूं? (और ध्यान दें, मैं कुछ भी तत्काल करने की कोशिश नहीं कर रहा हूं, बस प्रकार का संदर्भ लें)।

अद्यतन

ऐसा लगता है कि यह सिर्फ VS 2010 डिजाइनर के साथ एक बग है। डिजाइनर शिकायत करता है कि Type MyNamespace:MyClass+MyEnum was not found। लेकिन एप्लिकेशन चलाने के लिए प्रतीत होता है और नेस्टेड प्रकार का सही ढंग से उपयोग करता है। मैंने इसे नेस्टेड क्लास के साथ भी कोशिश की, और यह रन टाइम पर काम करता है।

संभव खुला बग: http://social.msdn.microsoft.com/forums/en-US/wpf/thread/12f3e120-e217-4eee-ab49-490b70031806/

संबंधित धागा: Design time error while writing Nested type in xaml

+1

ऐसा लगता है कि इस VS2010 डिजाइनर में एक ज्ञात बग हो सकता है? http://social.msdn.microsoft.com/forums/en-US/wpf/thread/12f3e120-e217-4eee-ab49-490b70031806/ – hashlock

+0

2012 में यह काम करता है, जब तक आप अपनी प्रोजेक्ट – Kranach

उत्तर

4

MSDN का कहना है:

आपका कस्टम वर्ग एक नेस्टेड वर्ग नहीं होना चाहिए। अपने सामान्य सीएलआर उपयोग वाक्यविन्यास में नेस्टेड कक्षाएं और "डॉट" अन्य WPF और/या XAML सुविधाओं जैसे संलग्न गुणों में हस्तक्षेप करते हैं।

इसी प्रकार के सवाल यहाँ है: Creating an instance of a nested class in XAML

+0

नहीं बनाते तब तक डिज़ाइनर त्रुटि दिखाता है लेकिन वह प्रतिबंध केवल कस्टम कक्षाओं को तुरंत लागू करने के लिए लागू होता है। मैं बस इस प्रकार का संदर्भ देने की कोशिश कर रहा हूं। और 'x' सिंटैक्स 'x: स्टेटिक 'के साथ क्यों काम करता है? असंगत लगता है। – hashlock