Button Handler in codebehind C# WPF -


मैंने इस तरह कोड में कुछ बटन बनाए हैं।

  if (infoLoader.categoriesLoaded) { बाजूबार्बटोन = नया बटन [infoLoader.categoriesLength]; के लिए (इंट आई = 0; आई & lt; साइडबारबटोन। लैंगिथ; आई ++) {साइडबार्बटोन [आई] = नया बटन (); साइडबार्बटोन [आई] .सामग्री = सूचनालेखक [i] .name; कैनवास.SetLeft (साइडबारबटोन [आई], 30); कैनवास। सैट टोप (साइडबारबटोन [आई], 110 + (40 * आई)); साइडबार्बटोन [आई]। + + नया इवेंटहैंडलर क्लिक करें (this.SideButton_Click); leftSideBar.Children.Add (sideBarButtons [i]); }}  

इस तरह बटन इवेंट हैंडलिंग फ़ंक्शन के साथ:

  निजी शून्य SideButton_Click (ऑब्जेक्ट प्रेषक, EventArgs ई) {// Uhh Console.WriteLine ( "बटन क्लिक किया गया है।"); MainText.Text = infoLoader.games [0] .id.ToString () + "," + infoLoader.games [0] .name + ":" + infoLoader.games [0] .न्याय; MainLaunchBtn.Content = "लॉन्च करें" + InfoLoader.games [0] .name; }  

और यह मुझे त्रुटि दे रहा है:

त्रुटि 1 'साइडबटोन_लिंक' मैचों के प्रतिनिधि के लिए कोई अधिभार नहीं 'system.EventHandler'

एम की तरह मुझे क्या याद आ रही है के रूप में उलझन में है, और किसी भी मदद की सराहना की जाएगी। धन्यवाद,

एंडी

WPF में ईवेंट ( बटनबेस से विरासत में मिली ) प्रकार EventHandler नहीं है - यह RoutedEventHandler है। मैं आपको मिलने वाले सटीक त्रुटि संदेश के बारे में कुछ हद तक आश्चर्यचकित हूं, लेकिन आपको अपना कोड इन्हें बदलने में सक्षम होना चाहिए:

  बाजूबार्बटोन [i]। + नया राउटेडएवेंटहैंडलर क्लिक करें (this.SideButton_Click );  

या अधिक बस:

  साइडबारबुटन्स [i]। क्लिक करें + = this.SideButton_Click;  

प्रतिनिधि प्रतिनिधि अपने मौजूदा विधि हस्ताक्षर को RoutedEventHandler में परिवर्तित होने की अनुमति देगा, भले ही दूसरा पैरामीटर प्रकार EventArgs के बजाय है RoutedEventArgs

आपको यह पता होना चाहिए कि आपको सही का उपयोग करके निर्देश प्राप्त है - सुनिश्चित करें कि आप वास्तव में WinForms बटन के बजाय WPF बटन बना रहे हैं ।


Comments