How to connect a Button in a Silverlight ListItem DataTemplate, in a ResourceDictionary (Styles.xaml), with a handler? -


ठीक है, इसलिए स्थिति मैं एक ResourceDictionary (Styles.xaml) में एक ListBox के लिए एक ItemTemplate परिभाषित कर रहा हूँ। ListBoxItem टेम्पलेट इस तरह से कुछ दिखता है:

  & amp; लिफ्ट; ControlTemplate TargetType = "ListBoxItem" & gt; & Lt; बटन कमांड = "{बाध्यकारी पथ = DoSomeCommand}" सामग्री = "टेस्ट" / & gt; & Lt; / ControlTemplate & gt;  

अब जहाँ भी इस टेम्पलेट का उपयोग किया जाता है, मुझे यह बटन क्लिक करने के लिए एक उपलब्ध ViewModel आदेश को संभाल करने के लिए बाध्य करना चाहते हैं।

हालांकि यह काम नहीं करता है है, मैंने यह भी करने की कोशिश की है:

  & lt; ControlTemplate TargetType = "ListBoxItem" & gt; & Lt; बटन कमांड = "{बाइंडिंग रिलेटिव सोरस = {रिलेटिवसॉरस टेम्पलेटेड पेन्ट}, पथ = डोजम कॉमांड}" सामग्री = "टेस्ट" / & gt; & Lt; / ControlTemplate & gt;  

लेकिन अभी भी कोई पासा नहीं है।

काम करने वाला एक सरल उदाहरण यह है कि क्या आप उस टेम्पलेट को नियंत्रण (संसाधन) में परिभाषित करते हैं जो इसका उपयोग कर रहा है, और ईवेंट हैंडलर (सभी जेनरेटेड एक्सएएमएल के लिए एक ही हैंडलर।

यह पूरा करने के सर्वोत्तम तरीके पर कोई विचार या विचार हैं? यह आंकड़ा एक सामान्य परिदृश्य होना चाहिए: लक्ष्य केवल उपयोगकर्ता के साथ इंटरैक्ट करने की अनुमति देना है सूचीबक्स में आइटम।

धन्यवाद!

ठीक है मुझे लगता है कि मैंने उत्तर दिया मेरा खुद का प्रश्न:

इसका समाधान करने के लिए 'नेस्टेड' व्यू मॉोडल्स यहां प्रयोग किया जा रहा है:

दूसरे शब्दों में, मेरी सूचीबॉक् स सीधे किसी डीटीओ / व्यवसाय ऑब्जेक्ट्स का संग्रह (जैसा मैं ऊपर कर रहा था) मैंने इसके बजाय प्रत्येक डीटीओ को लपेटने के लिए एक सरल व्यू मॉडेल बनाया, और मूल, शीर्ष-स्तरीय वीएम की बजाय, इसे पर कमांड किया। / P>

तो बाध्य संग्रह अब इस तरह दिखता है:

<पूर्व> TestItems = new ObservableCollection & lt; ItemVM & gt ; () (नया मदमीम (), नया मदमीम (), नया मदमीम ()};

और प्रत्येक ItemVM बस डीटीओ को लपेटता है, और इसमें कमांड है:

  सार्वजनिक वर्ग ItemVM: INotifyPropertyChanged {public ItemVM () {this.MyCommand = new DelegateCommand & LT; स्ट्रिंग & gt; ( आदेश ); } सार्वजनिक ICommand MyCommand {get; निजी सेट; } सार्वजनिक MyBusinessObject BizObj; }  

और वॉयला, रिलेटिवसार्स के लिए कोई ज़रूरत नहीं है, और हमारे पास कमांड्स के साथ एक पुन: प्रयोज्य टेम्पलेट है।


Comments

Popular posts from this blog

oracle - The fastest way to check if some records in a database table? -

php - multilevel menu with multilevel array -

jQuery UI: Datepicker month format -