在使用WPF完成一个项目并且非常依赖它的优秀数据绑定功能之后,我现在又回到了ASP.Net并且开始错过了一些WPF的东西。
我的问题是...... 是否有类似于WPF的ASP.Net的ValueConverters ?
例如,我希望UserControl公开一个IEnumerable<int>
的公共属性,用户可以从源中输入:
<asp:MyControl1 runat="server" ID="something" TheList="1,3,5,7"/>
然后TheList
中的值将转换为IEnumerable<int>
,类似于WPF的ValueConverter。
[更新]解决方案
感谢Nathan Baulch's提到TypeConverter
,我遇到了this question,我设法建立了一个字符串列表转换器。
答案 0 :(得分:2)
我建议你看一下System.ComponentModel.TypeConverter。
关于CodeProject的This文章包含一个与你的相关的示例,涉及纬度和经度字符串。
答案 1 :(得分:0)
我想不是。我最好的猜测是从String到IEnumberable的隐式转换,这通常是一件非常糟糕的事情,但在你的情况下会有效。
标记中的所有内容始终被视为字符串,除非放入<% %>
- 然后才会被解释。
您还可以做的是定义IEnumerable DataSource控件。然后,MyControl将从其获取IEnumerable数据的位置获取TheListDataSourceID。
<asp:MyControl1 runat="server" ID="something" TheListDataSourceID="myDataSource" />
<asp:MyIEnumerableDataSource runat="server" ID="myDataSource" TheList="1,3,5,7" />
然后IEnumerableDataSource将进行转换,并为想要它的用户控件返回IEnumerable。比隐式转换更好的情况。