2012-06-26 32 views
5

Tôi đang làm việc trong C# và tôi có một đối tượng mà tôi chỉ có thể truy cập bằng cách sử dụng Reflection (vì một số lý do cá nhân). Vì vậy, khi tôi cần phải đặt một số giá trị cho một trong những thuộc tính của nó tôi làm như sau:Tăng sự kiện khi Thuộc tính được thay đổi bằng cách sử dụng Reflection

System.Reflection.PropertyInfo property = this.Parent.GetType().GetProperty("SomeProperty"); 
object someValue = new object(); // Just for example 
property.SetValue(this.Parent, someValue, null); 

Và, để có được giá trị của nó tôi sử dụng phương pháp GetValue.

Câu hỏi của tôi là: Có cách nào để kích hoạt sự kiện khi thuộc tính thay đổi bằng Reflection không?

Cảm ơn bạn trước.

+0

Lớp này có thực thi 'INotifyPropertyChanged' không? Gọi SetValue nên sử dụng setter thuộc tính. – cadrell0

+0

@ cadrell0, Không, Im sợ Nó không – Dante

+0

@ Dante, bạn có tìm thấy giải pháp cho việc này không? Tôi đang cố gắng kích hoạt một sự kiện thông báo khi giá trị Thread.CurrentThread.CurrentCulture được thay đổi tương tự như câu hỏi của bạn – Kira

Trả lời

7

Có cách nào để kích hoạt sự kiện khi thuộc tính thay đổi bằng Reflection không?

Không trừ khi chính người đặt tài sản tự tăng giá, không. Không có gì "xem" cho tất cả các tài sản thay đổi, và nâng cao sự kiện khi họ làm.

+0

Cảm ơn bạn đã trả lời của bạn, tôi guees tôi cần phải có cách tiếp cận khác sau đó – Dante

0

Bạn có thể sử dụng ứng dụng Inotifychanged trong WPF .. tự động thay đổi giá trị thuộc tính khi một số sự kiện xảy ra liên quan đến thuộc tính

Các vấn đề liên quan