2011-07-11 662 views
6

Así que tienen un botón con un AutomationId (utilizado por Microsoft UI Automation) de esta manera:¿Cómo leo programáticamente el valor de una propiedad de dependencia adjunta?

<Button Name="myButton" AutomationId="myButtonAutomationID" 

mediante programación, tengo el botón (myButton) en el código, ¿cómo puedo obtener el valor de la 'AutomationId' propiedad asociada a ese botón?

+0

[Consulte este artículo] (http://msdn.microsoft.com/en-US/library/system.windows.automation.automationelement.automationidproperty.aspx) –

Respuesta

7

DependencyObject.GetValue debe hacer el trabajo:

string automationId = 
    (string)myButton.GetValue(AutomationProperties.AutomationIdProperty); 
+0

Gracias, funcionó de maravilla. – halcharger

+5

Puede evitar el reparto y mejorar la legibilidad del código simplemente llamando 'AutomationProperties.GetAutomationId (myButton)' –

1

Fundamentalmente, tal como lo haría con cualquier otro DependencyProperty; las propiedades ordinario en su objeto sirven (o deben servir) envoltorios tan simples alrededor de DependencyObject.GetValue y .SetValue, por lo que todo lo que tiene que hacer es llamar GetValue mismo y pasan en su static readonly instancia de su adjunto DependencyProperty:

var value = myButton.GetValue(yourDependencyProperty); 
0
var automationId = AutomationProperties.GetAutomationId(myButton); 

Como es estándar para las propiedades de dependencia, este método de envoltura hará el trabajo de llamar al DependencyObject.GetValue, y emitirá el valor al tipo correcto.

Cuestiones relacionadas