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