Click here to Skip to main content
15,894,646 members
Home / Discussions / C#
   

C#

 
AnswerRe: How to change utc Date in a normal Date Pin
John Torjo28-Jan-16 19:54
professionalJohn Torjo28-Jan-16 19:54 
AnswerRe: How to change utc Date in a normal Date Pin
Member 1191673528-Jan-16 20:41
Member 1191673528-Jan-16 20:41 
GeneralRe: How to change utc Date in a normal Date Pin
Richard MacCutchan28-Jan-16 22:38
mveRichard MacCutchan28-Jan-16 22:38 
AnswerRe: How to change utc Date in a normal Date Pin
jschell29-Jan-16 12:23
jschell29-Jan-16 12:23 
QuestionC# Application updated database. Pin
Ibrahim.elh28-Jan-16 0:07
Ibrahim.elh28-Jan-16 0:07 
AnswerRe: C# Application updated database. Pin
Garth J Lancaster28-Jan-16 0:42
professionalGarth J Lancaster28-Jan-16 0:42 
GeneralRe: C# Application updated database. Pin
Ibrahim.elh28-Jan-16 0:51
Ibrahim.elh28-Jan-16 0:51 
AnswerRe: C# Application updated database. Pin
OriginalGriff28-Jan-16 0:45
mveOriginalGriff28-Jan-16 0:45 
GeneralRe: C# Application updated database. Pin
Ibrahim.elh28-Jan-16 1:13
Ibrahim.elh28-Jan-16 1:13 
GeneralRe: C# Application updated database. Pin
OriginalGriff28-Jan-16 1:24
mveOriginalGriff28-Jan-16 1:24 
GeneralRe: C# Application updated database. Pin
Richard Deeming28-Jan-16 1:29
mveRichard Deeming28-Jan-16 1:29 
GeneralRe: C# Application updated database. Pin
Ibrahim.elh28-Jan-16 1:36
Ibrahim.elh28-Jan-16 1:36 
GeneralRe: C# Application updated database. Pin
Richard Deeming28-Jan-16 1:39
mveRichard Deeming28-Jan-16 1:39 
GeneralRe: C# Application updated database. Pin
Ibrahim.elh28-Jan-16 1:57
Ibrahim.elh28-Jan-16 1:57 
GeneralRe: C# Application updated database. Pin
Richard Deeming28-Jan-16 2:06
mveRichard Deeming28-Jan-16 2:06 
GeneralRe: C# Application updated database. Pin
Ibrahim.elh28-Jan-16 2:29
Ibrahim.elh28-Jan-16 2:29 
GeneralRe: C# Application updated database. Pin
Richard Deeming28-Jan-16 2:34
mveRichard Deeming28-Jan-16 2:34 
GeneralRe: C# Application updated database. Pin
Ibrahim.elh28-Jan-16 3:19
Ibrahim.elh28-Jan-16 3:19 
GeneralRe: C# Application updated database. Pin
Ibrahim.elh28-Jan-16 4:15
Ibrahim.elh28-Jan-16 4:15 
GeneralRe: C# Application updated database. Pin
Richard Deeming28-Jan-16 4:21
mveRichard Deeming28-Jan-16 4:21 
GeneralRe: C# Application updated database. Pin
Ibrahim.elh28-Jan-16 4:34
Ibrahim.elh28-Jan-16 4:34 
GeneralRe: C# Application updated database. Pin
Ibrahim.elh28-Jan-16 5:41
Ibrahim.elh28-Jan-16 5:41 
Questionsetting multiple Locations in a bing Map Pin
yemen_mansour27-Jan-16 21:34
yemen_mansour27-Jan-16 21:34 
QuestionWindows 10 Mobile MDM - Device Provisioning Pin
gomes127-Jan-16 19:50
gomes127-Jan-16 19:50 
QuestionAdd WeakEvent to ObservableCollection using reflection Pin
Kenneth Haugland27-Jan-16 6:52
mvaKenneth Haugland27-Jan-16 6:52 
The is a continuation from the last question I had in implementing WeakEvents. I am able to add a handler to INotifyPropertyChange property using reflection, and also check if it exists within the class:
C#
MethodInfo addHandlerMethod = SendOrListenType.GetMethod("AddHandler");
if (typeof(INotifyPropertyChanged).IsAssignableFrom(_WeakBoundObject.Target.GetType()))
    addHandlerMethod.Invoke(null, new object[] { _WeakBoundObject.Target, "PropertyChanged", handler });

My problem arises when I wanted to add WeakHandlers to an ObservableCollection. I am able to find the event CollectionChanged:
C#
EventInfo er = _WeakBoundObject.Target.GetType().GetProperty(PropertyName).PropertyType.GetEvent("CollectionChanged");

And Im also able to check if it exists:
C#
if (typeof(INotifyCollectionChanged).IsAssignableFrom(_WeakBoundObject.Target.GetType().GetProperty(PropertyName).PropertyType))

but this refuses to compile:
C#
addHandlerMethod.Invoke(null, new object[] {_WeakBoundObject.Target.GetType().GetProperty(PropertyName).PropertyType, "CollectionChanged", handler });

I have tried loads of different alternatives, but I can find the right one, can anyone spot my mistake here?

[Edit]
I have also changed the code to initialize the WeakEventMAnager:
C#
Type unboundWEMType = typeof(WeakEventManager<,>);
Type[] typeArgs = { typeof(ObservableCollection<string>) , typeof(EventArgs) };
Type TempSendOrListenType = unboundWEMType.MakeGenericType(typeArgs);
MethodInfo addHandlerMethod2 = TempSendOrListenType.GetMethod("AddHandler");

if (typeof(INotifyCollectionChanged).IsAssignableFrom(_WeakBoundObject.Target.GetType().GetProperty(PropertyName).PropertyType))
    addHandlerMethod2.Invoke(null, new object[] {_WeakBoundObject.Target.GetType().GetProperty(PropertyName), "CollectionChanged", handler });


Stack trace:
C#
An exception of type 'System.ArgumentException' occurred in mscorlib.dll but was not handled in user code

Additional information: Object of type 'System.Reflection.RuntimePropertyInfo' cannot be converted to type 'System.Collections.ObjectModel.ObservableCollection`1[System.String]'.


modified 27-Jan-16 13:12pm.

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.