1

在使用 WPF 完成了一个项目并非常喜欢它出色的数据绑定功能之后,我现在又回到了 ASP.Net 并开始怀念 WPF 的一些东西。

我的问题是......有什么类似于 WPF 的 ValueConverters for ASP.Net吗?

例如,我想要一个 UserControl 来公开一个公共属性,它是一个IEnumerable<int>并且用户可以从源输入这样的:

<asp:MyControl1 runat="server" ID="something" TheList="1,3,5,7"/>

然后 in 的值TheList将转换为IEnumerable<int>,类似于 WPF 的 ValueConverter 。

[更新] 解决方案

感谢Nathan Baulch提到 a TypeConverter,我遇到了这个问题,并设法构建了一个字符串到列表转换器。

4

2 回答 2

2

我建议您看一下System.ComponentModel.TypeConverter

CodeProject 上的这篇文章包含一个与您的涉及纬度和经度字符串的示例非常相似。

于 2009-07-10T08:37:52.143 回答
0

我想不是。我最好的猜测是从 String 到 IEnumberable 的隐式转换,这通常是一件非常糟糕的事情,但在你的情况下会起作用。

标记中的所有内容始终被视为字符串,除非放入<% %>- 然后它被解释。

您还可以做的是定义 IEnumerable DataSource 控件。然后 MyControl 将具有 TheListDataSourceID ,它将从中获取 IEnumerable 数据。

<asp:MyControl1 runat="server" ID="something" TheListDataSourceID="myDataSource" />

<asp:MyIEnumerableDataSource runat="server" ID="myDataSource" TheList="1,3,5,7" />

然后 IEnumerableDataSource 将进行转换并为需要它的用户控件返回 IEnumerable。比隐式转换好得多的情况。

于 2009-07-10T08:25:33.803 回答