Ho un controllo personalizzato che ha un ContentPresenter che avrà un oggetto arbitrario impostato come contenuto. Questo oggetto non ha alcun vincolo sul suo tipo, quindi voglio che questo controllo visualizzi il suo contenuto in base a qualsiasi modello di dati definito dall'applicazione o dai modelli di dati definiti in Generic.xaml. Se in un'applicazione definisco un modello di dati (senza una chiave perché voglio che venga applicato automaticamente agli oggetti di quel tipo) e io uso il controllo personalizzato associato a un oggetto di quel tipo, il modello di dati viene applicato automaticamente. Ma ho definito alcuni modelli di dati per alcuni tipi nel generic.xaml dove definisco lo stile di controllo personalizzato e questi template non vengono applicati automaticamente. Ecco l'generic.xaml:Come si possono applicare automaticamente i modelli di dati in generic.xaml?
< DataTemplate DataType = "{x: Tipo PredefinedType > < - definizione del modello - > <DataTemplate>
< Stile TargetType =" {x: Type CustomControl}" > < -! stile di controllo - > </stile >
Se imposto un oggetto di tipo "PredefinedType" come contenuto in contentpresenter, il modello di dati non viene applicato. Tuttavia, se funziona, definisco il modello di dati nell'app.xaml per l'applicazione che utilizza il controllo personalizzato.
Qualcuno ha un indizio? Non posso davvero presumere che l'utente del controllo definirà questo modello di dati, quindi ho bisogno di un modo per legarlo con il controllo personalizzato.
Ha lavorato bene, grazie :) –
Oltre alla risposta corretta di John, se è necessario utilizzare i modelli è possibile portare altrove loro nel dizionario di controllo risorse unite i dizionari da un altro file XAML. Ciò consente di riutilizzare i modelli sia in generic.xaml che in altre posizioni. –