2012-12-29 18 views
5

मेरे पास दृश्य मॉडल कक्षाओं के साथ एक एफ # डब्ल्यूपीएफ एप्लीकेशन है। XAML में डेटा प्रकारों के रूप में उपयोग करने के लिए इन कक्षाओं को सार्वजनिक होना आवश्यक है।एफ # भेदभाव संघ और डब्ल्यूपीएफ डाटाबेसिंग

समस्या यह है कि ऐसा लगता है कि ऐसा लगता है कि F # प्रकार रिकर्सन (और) का उपयोग करते समय अधीनस्थ प्रकार उपलब्ध नहीं हैं - या वे नहीं दिखते हैं। यही कहना है कि इस उदाहरण को दिया गया:

type Foo() = 

    member this.Bar = new Bar() 

and Bar() = 

    member this.Foo = new Foo() 

तब बार एक्सएएमएल में उपलब्ध नहीं है।

मैंने सार्वजनिक और बार के साथ फू को उपसर्ग करने की कोशिश की है। मैंने समानार्थी बनाने की भी कोशिश की है। उन परिवर्तनों में से कोई भी समस्या हल नहीं किया।

क्या यह वास्तव में यह काम करता है या मैं "इसे गलत कर रहा हूं"? यदि यह जिस तरह से काम करता है, तो क्या मैं अधीनस्थ प्रकार (बार, उदाहरण में) को जनता के लिए मजबूर कर सकता हूं?

धन्यवाद! :-)

अद्यतन 1: नज़दीकी निरीक्षण (डॉटपीक) पर ऐसा लगता है कि पहुंच समान है। एफ # कंपाइलर एक स्थिर बाहरी वर्ग फू और एक घोंसला वर्ग फू बनाता है। यह बार के साथ ही करता है। वे सभी जनता के रूप में चिह्नित हैं। अब मैं परेशान हूं कि XAML के भीतर बार क्यों पहुंच योग्य नहीं है।

अद्यतन 2: हल किया गया। डब्ल्यूपीएफ भेदभाव संघों को पसंद नहीं करता है। एक या अधिक अधीनस्थ प्रकार भेदभाव वाले संघों का उपयोग करते हैं और यह XAML डाटाबेसिंग के लिए उपयोग होने से रोकता है।

उत्तर

7

डब्ल्यूपीएफ भेदभाव वाले संघों को पसंद नहीं करता है। एक या अधिक अधीनस्थ प्रकार भेदभाव वाले संघों का उपयोग करते हैं और यह XAML डाटाबेसिंग के लिए उपयोग होने से रोकता है। बिल्कुल स्पष्ट नहीं है लेकिन वह समस्या थी।