自定义数据绑定控件中的自定义事件未在DataRepeater控件中触发。当我调试它时,我发现DataRepeater控件使用Activator.CreateInstance重新创建控件并复制属性和事件。在我的情况下,复制事件不会复制我挂钩的自定义事件。
例如
public class MyClass:Control { 公共事件EventHandler MyEvent;
protected virtual void OnMyEvent() { if(this.MyEvent!= null) { this.MyEvent(此,EventArgs.Empty); } }
private int selectedIndex = -1; public int SelectedIndex { 得到 { return this.selectedIndex; } 组 { if(this.selectedIndex!= value) { this.selectedIndex = value; this.OnMyEvent(); } } } // // DataBinding的东西就在这里 //
}
public Form1() { InitialiseComponent();
ArrayList list = new ArrayList(); list.Add( “1”);
this.dataRepeater1.DataSource = list; //一个转发器
MyClass test = new Myclass(); test.DataSource = GetDataTable();
this.dataRepeater1.ItemTemplate.Controls.Add(测试);
test.MyEvent + = new EventHandler(test_MyEvent);
}
//当Datatable的选定索引发生变化时,该事件应该触发,当直接放在表单中时触发,而在DataRepeater控件中放置时不触发///////////////// ////// private void test_MyEvent(object sender,EventArgss e) { //这个事件没有被解雇/////////////////////// }
私有DataTable GetDataTable() { ..//创建数据表并返回 }
任何帮助感谢。
谢谢,
答案 0 :(得分:0)
请参考以下论坛。它会对你有所帮助。
此致 Lingaraj S。