2011-07-11 8 views
6

Vì vậy, tôi có một nút với một AutomationId (được sử dụng bởi Microsoft UI Automation) như sau:Làm cách nào để đọc theo chương trình giá trị của thuộc tính phụ thuộc được đính kèm?

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

lập trình, tôi phải vào nút (myButton) trong mã, làm thế nào để tôi nhận được giá trị của 'AutomationId' tài sản gắn liền với nút đó?

+0

[Kiểm tra bài viết này] (http://msdn.microsoft.com/en-US/library/system.windows.automation.automationelement.automationidproperty.aspx) –

Trả lời

7

DependencyObject.GetValue nên thực hiện công việc:

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

Cảm ơn, đã làm việc tuyệt vời. – halcharger

+5

Có thể tránh việc truyền và cải thiện khả năng đọc mã bằng cách đơn giản gọi 'AutomationProperties.GetAutomationId (myButton)' –

1

Về cơ bản, cũng giống như bạn làm với bất kỳ DependencyProperty khác; các thuộc tính thông thường trên đối tượng của bạn phục vụ (hoặc nên phục vụ) giấy gói như đơn giản xung quanh DependencyObject.GetValue.SetValue, vì vậy tất cả các bạn cần làm là gọi GetValue bản thân và vượt qua trong static readonly bạn thể hiện của bạn gắn liền DependencyProperty:

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

Như là tiêu chuẩn cho thuộc tính phụ thuộc, phương pháp trình bao bọc này sẽ thực hiện công việc gọi DependencyObject.GetValue cho bạn và truyền giá trị đúng loại.