public override void WriteEventSubscription(TemplateContext ctx, CodeMemberMethod filterMethod, CodeMemberMethod handlerMethod)
{
//base.WriteEventSubscription(ctx, filterMethod, handlerMethod);
var relatedTypeProperty = SourceProperty.Source;
filterMethod.Parameters.Add(new CodeParameterDeclarationExpression(string.Format("PropertyChangedEvent<{0}>",relatedTypeProperty.MemberType.FullName), "value"));
handlerMethod.Parameters.Add(new CodeParameterDeclarationExpression(string.Format("PropertyChangedEvent<{0}>", relatedTypeProperty.MemberType.FullName), "value"));
if (Immediate)
{
ctx._("this.PropertyChangedEvent<{0},{1}>(Group=>{2}Observable, {3}, Group=>{2}, {4})",
EventType, relatedTypeProperty.MemberType.FullName, SourceProperty.Name, filterMethod.Name, OnlyWhenChanged ? "true" : "false");
}
else
{
ctx._("this.PropertyChangedEvent<{0},{1}>(Group=>{2}Observable, {3}, null, {4})", EventType, relatedTypeProperty.MemberType.FullName, SourceProperty.Name, filterMethod.Name, OnlyWhenChanged ? "true" : "false");
}
}