Ho un set di controlli legati ai dati, su cui vorrei aggiungere programmatori ai binding. Attualmente sono in grado di scorrere l'albero visivo per trovare i controlli con i binding e aggiungere anche i miei validatori a questi controlli. Ma per specificare ulteriormente quali controlli dovrebbero avere convalida specifica, volevo usare gli stili. Quindi il mio XAML si presenta così:Dato un DependencyObject WPF in stile, come posso ottenere lo Style Key nel codice?
<TextBox Name="someTextBox" Style="{StaticResource optionalNumericTextBox}" />
Qui, lo stile optionalNumericTextBox
serve sia l'aggiunta di un modello di errore di convalida e come decoratore per indicare che questo testo dovrebbe avere il validatore numerico facoltativo applicato.
Il problema si verifica quando sto attraversando l'albero visivo, si scopre un controllo con i collegamenti e quindi è necessario determinare lo stile in uso. Attualmente Ho provato
dependencyObject.GetValue(FrameworkElement.StyleProperty)
che mi dà a Style oggetto, ma per quanto ne so, questo oggetto non porta il valore 'optionalNumericTextBox'. È persino possibile determinare la chiave o queste informazioni sono perse nel lettore XAML?
Grande consiglio lì, utilizzando un setter di proprietà. In realtà mi ha indirizzato verso l'utilizzo di una proprietà associata al posto del Tag. Quindi ora uso qualcosa del tipo: Funziona come un fascino! –