我创建了一个包含ListView
的UserControl。 ListView可通过属性公开访问。当我将UserControl放在一个表单中并尝试通过属性设计ListView
时,ListView
保持这种状态,直到我再次编译并恢复到默认状态。
如何更改我的设计以适应ListView
?
答案 0 :(得分:6)
您需要使用DesignerSerializationVisibility属性修饰ListView属性,如下所示:
[DesignerSerializationVisibility(DesignerSerializationVisibility.Content)]
public ListView MyListView { get { return this.listView1; } }
这告诉设计者的代码生成器为它输出代码。
答案 1 :(得分:1)
Fredrik是正确的,基本上,当您需要启用设计器将属性保持为页面时,可以在运行时实例化它。只有一种方法可以做到这一点,那就是将其值写入ASPX页面,然后运行时将其选中。
否则,控件将每次都恢复到默认状态。
始终牢记在页面(及其内容)和代码在ASP.NET中完全独立,它们在运行时被连接起来。这意味着您不会像在WinForms应用程序中那样获得良好的代码隐藏设计器支持(其中表单是对象的实例)。
答案 2 :(得分:0)
就这样我很清楚,你做过这样的事,对吧?
public ListView MyListView { get { return this.listView1; } }
那么您是否正在(在设计时)访问UserControl上的MyListView属性?
我认为如果您需要适当的设计时支持,最好将ListView本身(返回原始UserControl)上的“Modifier”属性更改为Public - 这样您就可以直接修改ListView实例上的ListView用户控件。无论如何,我已经取得了成功。