Tengo un conjunto de controles vinculados a los datos, en los que me gustaría agregar validadores programáticamente a los enlaces. Actualmente puedo iterar sobre el árbol visual para encontrar esos controles con enlaces, y también agregar mis validadores a estos controles. Pero para especificar qué controles deberían tener una validación específica, quería usar estilos. Así que mi XAML se ve así:Dado un WPF DependencyObject con estilo, ¿cómo puedo obtener la clave de estilo en el código?
<TextBox Name="someTextBox" Style="{StaticResource optionalNumericTextBox}" />
Aquí, el estilo optionalNumericTextBox
sirve tanto la adición de una plantilla de error de validación y como decorador para indicar que el campo respectivo debe tener el validador numérico opcional aplicada.
El problema ocurre cuando estoy atravesando el árbol visual, descubro un control con enlaces, y luego necesito determinar el estilo en uso. Actualmente He intentado
dependencyObject.GetValue(FrameworkElement.StyleProperty)
que me da a Style objeto, sino por lo que yo puedo decir, este objeto no tiene el valor 'optionalNumericTextBox'. ¿Es posible determinar la clave o se pierde esta información en el lector XAML?
Gran consejo, utilizando un setter de propiedades. En realidad, me señaló en el sentido de usar una propiedad adjunta en lugar de la etiqueta. Así que ahora uso algo como: ¡Funciona como un encanto! –