手风琴控件,单击事件子项的捕获 [英] Accordion Control, Catch on click event Child Item

查看:83
本文介绍了手风琴控件,单击事件子项的捕获的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用手风琴,我在.cs页面上创建了手风琴项,
我需要捕获所选的手风琴项吗?

Working with accordion, i create Accordion Items on the .cs page,
I need Catch the selected accordionItem?

AccordionItem RSR = new AccordionItem();
                                                   RSR.Header = "RSR";

                                                         AccordionItem Supervisors = new AccordionItem();
                                                                     Supervisors.Header = "Supervisors";
                                                                AccordionItem Managers = new AccordionItem();
                                                                             Managers.Header = "Managers";

                                                                           // Managers.
                                                                             
                                                                             ContextMenu RSRContext=new ContextMenu();
                                                                             ContextMenu SupervisorsContext=new ContextMenu();
                                                                             ContextMenu ManagersContext=new ContextMenu();
                                                                             

                                                                             foreach (CrmUser user in RAU.users)
                                                                             {

                                                                                 if (user.jobtitle == 0)
                                                                                  RSRContext.Items.Add(user);
                                                                                
                                                                                 if (user.jobtitle == 4)
                                                                                     SupervisorsContext.Items.Add(user);
                                                                                 
                                                                                 if (user.jobtitle == 5)
                                                                                     ManagersContext.Items.Add(user);
                                                                                 

                                                                             }

                                                                             RSR.Content = RSRContext;
                                                                             Supervisors.Content = SupervisorsContext;
                                                                             Managers.Content = ManagersContext;

                                                                            

                                                                             accordion1.Items.Add(RSR);
                                                                             accordion1.Items.Add(Supervisors);
                                                                             accordion1.Items.Add(Managers);
                                                                            
                                                                             accordion1.SelectionMode = AccordionSelectionMode.ZeroOrOne;

推荐答案

请先进行注释,请确保在提问时所有源代码的格式都正确.除非人们能读懂,否则他们可能不会帮助您.尝试阅读这绝对是一场噩梦,但是由于您的问题/问题很好,我还是会回答...

这是一个基于您的代码的工作示例.关键部分以粗体显示.

Just to comment first, please make sure any source code is neatly formatted when you ask a question. Unless people can read it they probably won''t help you. It''s an absolute nightmare trying to read that, but as your question/problem is a good one I''ll answer anyway...

Here''s a working example based on your code. The key bits are in bold...

void MainPage_Loaded(object sender, RoutedEventArgs e)
        {
            AccordionItem RSR = new AccordionItem();
            RSR.Header = "RSR";
            AccordionItem Supervisors = new AccordionItem();
            Supervisors.Header = "Supervisors";
            AccordionItem Managers = new AccordionItem();
            Managers.Header = "Managers";

            ContextMenu RSRContext = new ContextMenu();
            ContextMenu SupervisorsContext = new ContextMenu();
            ContextMenu ManagersContext = new ContextMenu();            

            // I''ve change this bit as you haven''t explained "RAU.users"
            // The important thing is I''ve used a MenuItem 
            // (You''ll need to convert your "user" objects to "MenuItems")
            // And also attached Click listeners
            MenuItem jeff = new MenuItem { Header = "Jeff" };
            jeff.Click += new RoutedEventHandler(MenuSelected_Click);
            MenuItem bob = new MenuItem { Header = "Bob" };
            bob.Click += new RoutedEventHandler(MenuSelected_Click);
            RSRContext.Items.Add(jeff);
            RSRContext.Items.Add(bob);
            MenuItem sheenagh = new MenuItem { Header = "Sheenagh" };
            sheenagh.Click += new RoutedEventHandler(MenuSelected_Click);
            MenuItem mike = new MenuItem { Header = "Mike" };
            mike.Click += new RoutedEventHandler(MenuSelected_Click);
            SupervisorsContext.Items.Add(sheenagh);
            SupervisorsContext.Items.Add(mike);
            MenuItem alice = new MenuItem { Header = "Alice" };
            alice.Click += new RoutedEventHandler(MenuSelected_Click);
            MenuItem luke = new MenuItem { Header = "Luke" };
            luke.Click += new RoutedEventHandler(MenuSelected_Click);
            ManagersContext.Items.Add(alice);
            ManagersContext.Items.Add(luke);
            // End of change

            RSR.Content = RSRContext;
            Supervisors.Content = SupervisorsContext;
            Managers.Content = ManagersContext;
            
            accordion1.Items.Add(RSR);
            accordion1.Items.Add(Supervisors);
            accordion1.Items.Add(Managers);

            accordion1.SelectionMode = AccordionSelectionMode.ZeroOrOne;            
        }

        void MenuSelected_Click(object sender, RoutedEventArgs e)
        {
            MenuItem item = sender as MenuItem;
            MessageBox.Show("You clicked on: " + item.Header.ToString());
        }



附言:如果有帮助,请标记为答案.



PS Please mark as the answer if this helps.


这篇关于手风琴控件,单击事件子项的捕获的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆