繁体   English   中英

调用单选按钮CheckedChanged的匿名绑定委托方法

[英]Call Anonymous binded delegate method of radiobutton CheckedChanged

我有一个动态生成的单选按钮,其匿名委托声明为

private void SetFieldDependency(DocumentSimpleFieldDetailDto obj, Table table, RadioButton ctrlExtended, Panel pnl)
    {
        if (this.ListOfDependentFields != null)
        {
            var lstRelatedField = this.TemplateCompiledDto.LstSimpleFields.Where(a => a.FkDocumentTemplateSectionId == obj.FkDocumentTemplateSectionId
                                                                                && !a.IsGridField && a.FieldGroup == obj.FieldGroup);
            var objDependencyList = this.ListOfDependentFields.FindAll(h => lstRelatedField.Any(k => h.ParentFieldId == k.TemplateSimpleFieldDetailId));
            if (objDependencyList != null && objDependencyList.Count > 0)
            {
                ctrlExtended.AutoPostBack = true;
                ctrlExtended.CheckedChanged += (sender, e) =>
                                                   {
                                                       foreach (var fieldDependency in objDependencyList.Where(h => h.ChildFieldId != null))
                                                       {
                                                           var tr = table.FindControl(fieldDependency.ChildFieldId.ToString()) as TableRow;
                                                           if (tr != null)
                                                           {
                                                               if (fieldDependency.ParentFieldId == obj.TemplateSimpleFieldDetailId)
                                                               {
                                                                   tr.Visible = true;
                                                               }
                                                               else
                                                               {
                                                                   tr.Visible = !tr.Visible;
                                                               }                                                                   
                                                           }
                                                       }
                                                       SetGridFieldDependency(obj, pnl, objDependencyList);
                                                   };
            }
        }
    }

现在在某个按钮提交事件上,我必须将此CheckChanged radiobutton CheckChanged CheckChanged Event.If就像ctrlExtended_Changed(object sender, EventArgs e)

我可以轻松调用,但如何调用绑定的匿名委托方法?

我也在用Asp.net

如果某个其他事件需要触发此事件CheckedChanged ,则应明确调用CheckedChanged事件。 如果您只想调用匿名委托方法中的逻辑,我建议您将该逻辑放在方法中并调用该方法

编辑

ctrlExtended.CheckedChanged += (sender, e) =>{
  // My logic
  SharedLogic(sender, e);
}
.
.
.
public void SharedLogic(object sender, EventHandler e)
{
// the shared logic
}

这样,当触发CheckedChanged事件时,您的逻辑仍然会被调用,但是方法SharedLogic也将被调用,您可以从其他地方调用该方法

有不同的使用方式。

public class NumberEventArgs : EventArgs
{
   private int _number;
   public NumberEventArgs(int num)
   {
      this._number = num;
   }
    public int getNumber
    {
      get
      {
        return _reached;
      }
}
// eventhandler Method
private void ShowMessage(object sender, NumberEventArgs e)
{
 MessageBox.Show("Hello user your ticket no is:" + e.getNumber().ToString());
}

 myRadioButton.CheckedChanged += (sender, e) =>{ ShowMessage(); }
 myRadioButton.CheckedChanged += (sender, e) => MessageBox.Show(string.Format("sender is: {0} and eventargumnet is:{1}",sender.getType(),e.toString()};
 myRadioButton.CheckedChanged += (sender, e) => string.Format("string = {0} and {1}", sender.getType() , e);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM