| Tiziano Muratore |
UserControl Wpf
Buona sera a tutti.
Da qualche mesetto, tempo permettendo, ho cominciato ad avvicinarmi al mondo WPF sviluppando una semplicissima applicazione per mettere in pratica un pò di concetti appresi grazie al materiale trovato in rete e sopratutto grazie ai webcast di Corrado Cavalli. Per il momento, i miei dubbi si sono concentrati, come da oggetto del post, sugli UserControl. Vengo al dunque. Ho necessità che, nel momento in cui le mie textbox ricevono il focus, venga selezionato tutto il testo al loro interno. Fin qui nessun problema .... potrei risolvere usando gli attached behavior (volendo rispettare il pattern mvvm) ma, un pò per completezza ed un pò perche ritengo sia una soluzione più performante, ho voluto creare uno UserControl che implementasse già questa caratteristica. Pertanto, apro Microsoft Blend, posiziono un textbox nel form .... tasto destro ---> Crea Controllo ..... e lo UserControl viene automaticamente creato all'interno del progetto, potendo così fornire la mia textbox di tutte le funzionalità che voglio. Il problema nasce dal fatto che non riesco a "tipizzare" il mio UserControl. Mi spiego meglio. Nel momento in cui lo UserControl viene creato, sparisce, ad esempio, la proprietà Text che viene sostituita da una proprietà Content impostata, di default, a (Grid) ... nonostante io mi aspetassi che lo UserControl ereditasse da TextBox pertanto con la proprietà Text disponibile al Binding e quant'altro. La mia domanda si riduce quindi alla seguente : Come faccio a creare uno UserControl che erediti da TextBox(in questo caso) mantenendo pertanto tutte le caratteristiche di una TextBox? Ovviamente, inutile dire che ho provato ad inserire la clausola "Inherits TextBox" (sviluppo in Vb) nel code behind dello UserControl, ma mi viene restituito un errore di compilazione perchè lo userControl eredita già dalla classe base System.Windows.Controls.UserControl. Spero possiate illuminarmi. Jeremy. |
| Corrado Cavalli |
Re: UserControl Wpf
Non capisco perchè semplicemente non erediti da TextBox scrivendo:
public class AutoSelectTextBox: Inherits TextBox End Class e poi non inserisci MyBase.SelectAll() nell'override di OnGotFocus() |
| Tiziano Muratore |
Re: UserControl Wpf
Si in effetti è stato sufficiente creare una nuova classe che ereditasse dalla classe textbox .... il motivo per cui avevo scartato questa soluzione è dovuto al fatto che avevo anche l'intenzione di modificarne l'aspetto grafico creando una risorsa(stile) a livello di UserControl e non a livello di applicazione (o finestra che sia).
Ad ogni modo .... ciò che mi hai consigliato è sicuramente quello che mi serviva. Grazie per l'aiuto. Alla prossima .... magari con una domanda un pò meno banale :-). Ciao Jeremy. |