This commit is contained in:
Brandon Minnick 2021-03-05 20:15:38 -08:00
Родитель 266643578f
Коммит 17086449f2
5 изменённых файлов: 25 добавлений и 9 удалений

Просмотреть файл

@ -26,7 +26,9 @@ namespace Xamarin.CommunityToolkit.Helpers
if (handler == null)
throw new ArgumentNullException(nameof(handler));
EventManagerService.AddEventHandler(eventName, handler.Target, handler.GetMethodInfo(), eventHandlers);
var methodInfo = handler.GetMethodInfo() ?? throw new NullReferenceException("Could not locate MethodInfo");
EventManagerService.AddEventHandler(eventName, handler.Target, methodInfo, eventHandlers);
}
/// <summary>
@ -42,7 +44,9 @@ namespace Xamarin.CommunityToolkit.Helpers
if (handler == null)
throw new ArgumentNullException(nameof(handler));
EventManagerService.RemoveEventHandler(eventName, handler.Target, handler.GetMethodInfo(), eventHandlers);
var methodInfo = handler.GetMethodInfo() ?? throw new NullReferenceException("Could not locate MethodInfo");
EventManagerService.RemoveEventHandler(eventName, handler.Target, methodInfo, eventHandlers);
}
/// <summary>

Просмотреть файл

@ -29,7 +29,9 @@ namespace Xamarin.CommunityToolkit.Helpers
if (handler == null)
throw new ArgumentNullException(nameof(handler));
EventManagerService.AddEventHandler(eventName, handler.Target, handler.GetMethodInfo(), eventHandlers);
var methodInfo = handler.GetMethodInfo() ?? throw new NullReferenceException("Could not locate MethodInfo");
EventManagerService.AddEventHandler(eventName, handler.Target, methodInfo, eventHandlers);
}
/// <summary>
@ -45,7 +47,9 @@ namespace Xamarin.CommunityToolkit.Helpers
if (action == null)
throw new ArgumentNullException(nameof(action));
EventManagerService.AddEventHandler(eventName, action.Target, action.GetMethodInfo(), eventHandlers);
var methodInfo = action.GetMethodInfo() ?? throw new NullReferenceException("Could not locate MethodInfo");
EventManagerService.AddEventHandler(eventName, action.Target, methodInfo, eventHandlers);
}
/// <summary>
@ -61,7 +65,9 @@ namespace Xamarin.CommunityToolkit.Helpers
if (handler == null)
throw new ArgumentNullException(nameof(handler));
EventManagerService.RemoveEventHandler(eventName, handler.Target, handler.GetMethodInfo(), eventHandlers);
var methodInfo = handler.GetMethodInfo() ?? throw new NullReferenceException("Could not locate MethodInfo");
EventManagerService.RemoveEventHandler(eventName, handler.Target, methodInfo, eventHandlers);
}
/// <summary>
@ -77,7 +83,9 @@ namespace Xamarin.CommunityToolkit.Helpers
if (action == null)
throw new ArgumentNullException(nameof(action));
EventManagerService.RemoveEventHandler(eventName, action.Target, action.GetMethodInfo(), eventHandlers);
var methodInfo = action.GetMethodInfo() ?? throw new NullReferenceException("Could not locate MethodInfo");
EventManagerService.RemoveEventHandler(eventName, action.Target, methodInfo, eventHandlers);
}
/// <summary>
@ -113,11 +121,15 @@ namespace Xamarin.CommunityToolkit.Helpers
EventManagerService.HandleEvent(eventName, eventArgs, eventHandlers);
}
/// <summary>
/// Extensions for Xamarin.Forms.WeakEventManager
/// </summary>
public static class WeakEventManagerExtensions
{
/// <summary>
/// Invokes the event EventHandler
/// </summary>
/// <param name="weakEventManager">WeakEventManager</param>
/// <param name="sender">Sender</param>
/// <param name="eventArgs">Event arguments</param>
/// <param name="eventName">Event name</param>

Просмотреть файл

@ -165,7 +165,7 @@ namespace Xamarin.CommunityToolkit.Helpers
var typeRTDynamicMethod = typeInfoRTDynamicMethod?.AsType();
if (typeInfoRTDynamicMethod != null && typeInfoRTDynamicMethod.IsAssignableFrom(rtDynamicMethod.GetType().GetTypeInfo()))
return (DynamicMethod?)typeRTDynamicMethod.GetRuntimeFields()?.FirstOrDefault(f => f.Name is "m_owner")?.GetValue(rtDynamicMethod);
return (DynamicMethod?)typeRTDynamicMethod?.GetRuntimeFields()?.FirstOrDefault(f => f?.Name is "m_owner")?.GetValue(rtDynamicMethod);
else
return null;
}

Просмотреть файл

@ -18,7 +18,7 @@ namespace Xamarin.CommunityToolkit.ObjectModel.Extensions
void handler(object? sender, PropertyChangedEventArgs e)
{
var s = (T)weakSubscriber.Target;
var s = (T?)weakSubscriber.Target;
if (s == null)
{
target.PropertyChanged -= handler;

Просмотреть файл

@ -466,7 +466,7 @@ namespace Xamarin.CommunityToolkit.UI.Views
foreach (var newTabViewItem in e.NewItems)
{
if (newTabViewItem is TabViewItem tabViewItem)
AddTabViewItem(tabViewItem, TabItems.IndexOf(newTabViewItem));
AddTabViewItem(tabViewItem, TabItems.IndexOf(tabViewItem));
}
}
}