更改 VisualStudio 自动生成的代码
我为自己创建了一个新的 TextBox 控件,该控件继承自默认的系统 TextBox。如果我向设计器添加数据源,并且在数据源视图中,我可以在可以拖动到设计器上的控件列表中看到新的文本控件。
我的问题是,当我将控件拖到设计器上时,VS 会创建以下代码。
this.someValueTextEdit1.DataBindings.Add(new System.Windows.Forms.Binding("EditValue", this.myViewModelBindingSource, "SomeValue", true));
相反,当我将控件拖到设计器上时,我希望它使用一些自定义代码。
如果您想知道我为什么要这样做,那么我可以更改绑定,以便它使用 linq 和表达式树而不是字符串属性值。像这样的东西
Bind(this.someValueTextEdit, c => c.EditValue, v => v.SomeValue);
I have created myself a new TextBox control which inherits from the default System TextBox. If I add a datasource to my designer and in the DataSource view I can see my new text control in the list of controls I can drag onto the designer.
My Issue is when I drag the control onto the designer VS goes and creates the following code.
this.someValueTextEdit1.DataBindings.Add(new System.Windows.Forms.Binding("EditValue", this.myViewModelBindingSource, "SomeValue", true));
I instead would like it to use some custom code when I drag the control onto the designer.
If your wondering why I want to do this, is so I can change the binding so that it uses linq and expression trees rather than string property values. Something like
Bind(this.someValueTextEdit, c => c.EditValue, v => v.SomeValue);
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您应该创建自己的 CodeDomSerializer 类。
使用示例:MSDN 上的 CodeDomSerializer 类
You shuld create your own CodeDomSerializer class.
Sample of usage: CodeDomSerializer Class on MSDN