Domanda

Ho creato un UserControl che ha un file ListView dentro.ListView è accessibile pubblicamente tramite una proprietà.Quando inserisco UserControl in un modulo e provo a progettare il file ListView sebbene la proprietà, il ListView rimane così finché non ricompilo di nuovo e ritorna allo stato predefinito.

Come faccio a far sì che le modifiche al mio design rimangano valide per il file ListView?

È stato utile?

Soluzione

Devi decorare la proprietà ListView con l'attributo DesignerSerializationVisibility, in questo modo:

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

Questo dice al generatore di codice del progettista di produrre il codice per esso.

Altri suggerimenti

Federico è corretto, in sostanza, quando è necessario consentire al progettista di rendere persistente la proprietà nella pagina in modo che possa essere istanziata in fase di esecuzione.C'è solo un modo per farlo, ovvero scrivere i suoi valori nella pagina ASPX, che viene poi rilevata dal runtime.

Altrimenti, il controllo tornerà semplicemente al suo stato predefinito ogni volta.

Tieni sempre presente che la pagina (e i suoi contenuti) e il codice sono completamente separati in ASP.NET, sono collegati in fase di esecuzione.Ciò significa che non ottieni il simpatico supporto del designer code-behind come fai in un'app WinForms (dove il modulo è un'istanza di un oggetto).

Tanto per essere chiaro, hai fatto qualcosa del genere, giusto?

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

Quindi stai accedendo (in fase di progettazione) alla proprietà MyListView sul tuo UserControl?

Penso che se desideri un supporto adeguato in fase di progettazione è meglio modificare la proprietà "Modificatore" sul ListView stesso (di nuovo sull'UserControl originale) su Public: in questo modo puoi modificare il ListView direttamente sulle istanze dell'UserControl.Ho avuto successo comunque nel farlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top