2008-08-19 61 views
3

我已经创建了一个UserControl,其中包含一个ListView。 ListView可以通过属性公开访问。当我将UserControl放在窗体中并试图通过属性设计ListView时,ListView保持这种状态,直到我再次编译并恢复为默认状态。.Net UserControl的设计问题

如何让我的设计更改为坚持ListView

回答

6

您需要用DesignerSerializationVisibility属性来装饰ListView控件属性,像这样:

[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)] 
public ListView MyListView { get { return this.listView1; } } 

这告诉设计师的代码生成器输出的代码吧。

0

就这样我清楚,你做了这样的事情,对吧?

public ListView MyListView { get { return this.listView1; } } 

那么你正在访问(在设计时)你的UserControl的MyListView属性?

我认为如果您想要适当的设计时支持,您最好将ListView本身(返回原始UserControl)上的“Modifier”属性更改为Public - 这样,您可以直接修改ListView UserControl。无论如何,我已经取得了成功。

1

Fredrik是正确的,基本上,当您需要启用设计器持久属性页,以便它可以在运行时实例化。只有一种方法可以做到这一点,那就是将其值写入ASPX页面,然后由运行时选取。

否则,控件将每次都简单地恢复到默认状态。

始终牢记在页面(及其内容)和代码在ASP.NET中是完全独立的,它们在运行时连接在一起。这意味着您不像WinForms应用程序那样获得良好的代码隐藏设计器支持(其中表单是对象的实例)。