123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Reflection;
- using System.Text;
- using System.Threading.Tasks;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Data;
- using System.Windows.Documents;
- using System.Windows.Input;
- using System.Windows.Media;
- using System.Windows.Media.Imaging;
- using System.Windows.Shapes;
- using FWindSoft.Events;
- using FWindSoft.SystemExtensions;
- using Test.CacheItemsTest;
- namespace Test.EventTest
- {
- /// <summary>
- /// EventWrapperTest.xaml 的交互逻辑
- /// </summary>
- public partial class EventWrapperTest : Window
- {
- ExtendClassEvent m_Extend;
- private EventsWrapper m_Events = new EventsWrapper();
- public EventWrapperTest()
- {
- InitializeComponent();
- m_Events.AddBindings(m_Extend = new ExtendClassEvent());
- Idling += EventWrapperTest_Idling;
- Filter += EventWrapperTest_Filter;
- }
- private void EventWrapperTest_Filter(object sender, FilterEventArgs e)
- {
- MessageBox.Show("Filter");
- }
- private void EventWrapperTest_Idling(object sender, EventArgs e)
- {
- MessageBox.Show("Idling");
- }
- #region 代理事件相关
- public event EventHandler<EventArgs> Idling
- {
- add { m_Events["Idling"]?.AddEventHandler(value); }
- remove { m_Events["Idling"]?.RemoveEventHandler(value); }
- }
- public event EventHandler<FilterEventArgs> Filter
- {
- add
- {
- EventWrapper<FilterEventArgs> wrapper = (EventWrapper<FilterEventArgs>)m_Events["Filter"];
- if (wrapper != null)
- {
- wrapper.PHandler += value;
- }
- }
- remove
- {
- EventWrapper<FilterEventArgs> wrapper = (EventWrapper<FilterEventArgs>)m_Events["Idling"];
- if (wrapper != null)
- {
- wrapper.PHandler -= value;
- }
- }
- }
- #endregion
- private void Button_Click(object sender, RoutedEventArgs e)
- {
- m_Extend.RaiseIdling();
- }
- private void Button_Click_1(object sender, RoutedEventArgs e)
- {
- m_Extend.RaiseFilter();
- }
- private void Button_Click_2(object sender, RoutedEventArgs e)
- {
- m_Events.RemoveBindings(m_Extend);
- }
- private void Button_Click_3(object sender, RoutedEventArgs e)
- {
- m_Events.AddBindings(m_Extend);
- Idling += EventWrapperTest_Idling;
- Filter += EventWrapperTest_Filter;
- }
- private void Button_Click_4(object sender, RoutedEventArgs e)
- {
- CacheItemsUtils.Test();
- }
- }
- public class ExtendClassEvent
- {
- public event EventHandler<EventArgs> Idling;
- public event EventHandler<FilterEventArgs> Filter;
- public void RaiseIdling()
- {
- Idling?.Invoke(this, new EventArgs());
- }
- public void RaiseFilter()
- {
- Filter?.Invoke(this, null);
- }
- }
- }
|