यह काफी सीधा सवाल प्रतीत होना चाहिए, लेकिन मैं थोड़ा संघर्ष कर रहा हूं। मेरे पास ऑब्जेक्ट्स का एक संग्रह है जिसे मैं उस ऑब्जेक्ट की प्रत्येक प्रॉपर्टी के लिए ग्रिड व्यू कॉलम की एक श्रृंखला के साथ ग्रिड से जुड़ा हूं जिसे मैं प्रदर्शित करना चाहता हूं।

हालांकि, इनमें से एक कॉलम वर्तमान में int के रूप में प्रदर्शित हो रहा है और मैं इसे एक स्ट्रिंग में बदलना चाहता हूं। यदि संभव हो, तो मैं चाहता हूं कि रूपांतरण एक अलग वर्ग (मेरी व्यावसायिक परत पर) में हो।

मेरे एक्सएएमएल में उस ग्रिड व्यू कॉलम के लिए मेरे पास यह है: <GridViewColumn Header="Status" DisplayMemberBinding="{Binding CourtEventStatusCodeId}" />

मेरी व्यावसायिक परत में विधि को कैसा दिखना चाहिए और मैं इसे अपने एक्सएएमएल के साथ संयोजन में कैसे उपयोग करूं?

अग्रिम धन्यवाद,
लल्लू

1
Sonny Boy 30 अगस्त 2010, 20:52

2 जवाब

सबसे बढ़िया उत्तर

आपको एक ValueConverter चाहिए - बाइंडिंग देखें। कवर्टर संपत्ति जो आपको सही रास्ते पर ले जानी चाहिए।

आपके पास कुछ ऐसा होगा ...

<UserControl.Resources>
    <local:BoolToVisibilityConverter x:Key="BoolToVisibilityConverter" />
</UserControl.Resources>

...फिर उपयोग करते समय...

Converter={StaticResource BoolToVisibilityConverter}

... और आप उसी प्रोजेक्ट के भीतर जहां चाहें पुन: उपयोग कर सकते हैं।

0
Will A 30 अगस्त 2010, 21:19
मैंने यह कोशिश की है, लेकिन सभी कोड उदाहरण इसे विशिष्ट पृष्ठ के पीछे कोड के हिस्से के रूप में दिखाते हैं। मेरे लिए इसे एक अलग वर्ग में ढूंढने का कोई भी तरीका क्योंकि मुझे इसे कई अलग-अलग स्थानों से कॉल करने की आवश्यकता हो सकती है और मैं कॉपी-पेस्ट नहीं करना चाहता हूं।
 – 
Sonny Boy
30 अगस्त 2010, 21:00
आप इसे आसानी से एक अलग वर्ग में बना सकते हैं और इसे अपने पूरे प्रोजेक्ट में विभिन्न एक्सएएमएल पर पुन: उपयोग कर सकते हैं।
 – 
Will A
30 अगस्त 2010, 21:02
फिर मैं इसे अपने पृष्ठ में एक्सएएमएल से कैसे एक्सेस करूं? वह कोड कैसा दिखेगा?
 – 
Sonny Boy
30 अगस्त 2010, 21:03
नमूना कोड शामिल करने के लिए संपादित किया गया। ध्यान दें कि BoolToVisibilityConverter मेरे उदाहरण में एक वर्ग है जो IValueConverter लागू करता है।
 – 
Will A
30 अगस्त 2010, 21:19
- मैंने IValueConverter को लागू करने वाले कोड के पीछे एक वर्ग जोड़ा है और मेरे पृष्ठ पर स्थानीय संसाधन जोड़ने का भी प्रयास किया है। जब मैं इसका उपयोग करने का प्रयास करता हूं तो मुझे एक्सएएमएल में एक त्रुटि मिल रही है: <local:CourtEventConverter x:Key="CourtEventConverter" /> त्रुटि The type 'local:CourtEventConverter' was not found. Verify that you are not missing an assembly reference and that all referenced assemblies have been built. है
 – 
Sonny Boy
30 अगस्त 2010, 21:34

चूंकि मान उपयोगकर्ताओं द्वारा परिभाषित किया गया है और एनम कॉन्स्ट नहीं हो सकता है, क्या उपयोगकर्ता डेटाबेस में परिभाषित मान हैं? हो सकता है कि आप अपने एसक्यूएल को टेबल में शामिल करना चाहते हैं और स्ट्रिंग के साथ जुड़े टेबल से कॉलम वापस करना चाहते हैं।

-1
Jimmy Hoffa 30 अगस्त 2010, 21:20
यह व्यवसाय या प्रस्तुति परत रखने के उद्देश्य को हरा देता है। मैं अपनी वस्तुओं के साथ प्रस्तुति तर्क नहीं चाहता।
 – 
Sonny Boy
30 अगस्त 2010, 21:02
लड़का: एक एनम के रूप में एक दाल ऑब्जेक्ट एक इंट कॉलम का प्रतिनिधित्व करता है, एक एक्सडॉक्यूमेंट के रूप में एक एक्सएमएल कॉलम का प्रतिनिधित्व करने से अधिक प्रस्तुति तर्क नहीं है। आप इसे एक स्ट्रिंग के रूप में प्रस्तुत नहीं करेंगे?
 – 
Jimmy Hoffa
30 अगस्त 2010, 21:13
CourtEventStatusCode एक ऐसा वर्ग है जो किसी भी उपयोगकर्ता द्वारा परिभाषित मानों का प्रतिनिधित्व कर सकता है। जबकि मैं इसे एक एनम के रूप में परिभाषित करना पसंद करूंगा जो डिजाइन-समय पर निर्धारित होता है, मुझे डर है कि यह एक विकल्प नहीं है।
 – 
Sonny Boy
30 अगस्त 2010, 21:16
लड़का: आह, आपने यह निर्दिष्ट नहीं किया था कि यह डिज़ाइन समय परिभाषित था, फिर हाँ एक वैल्यू कनवर्टर वह है जो आप चाहते हैं। यह मानने के लिए खेद है कि यह एक एनम था ..
 – 
Jimmy Hoffa
30 अगस्त 2010, 21:18