Trước hết, tôi là một chút mới để Rx, vì vậy hãy bình luận của tôi cho phù hợp.
Điều đó nói rằng, tôi nghĩ rằng có một cơ hội tuyệt vời để hợp tác giữa INotifyPropertyChanged và Rx's IObservable. Tôi nghĩ tương đối rõ ràng rằng giao diện người dùng được xây dựng xung quanh INPC vào thời điểm này. Tuy nhiên, INPC cũng là một cách chính để phát hiện các thay đổi và quản lý các kịch bản trong đó mô hình miền hoặc mô hình xem có sự phụ thuộc lẫn nhau giữa các đối tượng và thuộc tính. Đó là những phụ thuộc lẫn nhau mà dường như là ứng cử viên tốt cho Rx.
Làm việc với INPC trực tiếp hơi phức tạp và hơi đau. Rất nhiều chuỗi ma thuật để giải quyết. Nó cũng là một chút đau đớn để xem cho một sự kiện trên một đối tượng nhiều cấp độ đi trong cây đối tượng.
Nhưng nếu tôi có thể lập mô hình các tương tác này "phản ứng", thì các kiểu xem và mô hình miền của tôi bắt đầu cảm thấy thanh lịch hơn một chút. Điều này là hiển nhiên trong sự tao nhã của các dự án như Bindable Linq, Continuous Linq, Obtics, v.v. Những thư viện này giúp đơn giản tạo "giá trị trực tiếp" hoặc "bộ sưu tập trực tiếp" tự động cập nhật (tôi có thể nói "phản ứng") để thay đổi. Linq liên tục thậm chí có "reactive object" framework để lập trình phản ứng, mặc dù không có Rx.
Dường như với tôi rằng sự phối hợp đến nếu chúng ta có thể sử dụng Rx để giữ mô hình và xem mô hình mạch lạc. Sau đó, chúng ta có thể làm cho "bề mặt có thể ràng buộc" của mô hình/mô hình xem tôn vinh INPC bằng cách tiếp tục tăng PropertyChanged khi cần thiết. Tôi đã nhìn thấy một cặp vợ chồng elegant extension methods mà sẽ tạo ra một quan sát từ INotifyPropertyChanged. Dường như nửa kia của điều này có thể là tạo ra một số cơ sở hạ tầng dịch từ Rx trở lại INPC.
cảm ơn nhưng không thực sự hữu ích, tôi biết giao diện hoạt động như thế nào đối với ràng buộc – AwkwardCoder
@AWC: Ngược lại, giải thích của anh ấy giải quyết các câu hỏi của bạn, đặc biệt là câu hỏi cuối cùng của bạn. –
cho phép xem - Tôi nói rằng tôi đã sử dụng INotifyPropertyChanged vì vậy tôi sẽ có một số hiểu biết về cách hoạt động với Winforms \ WPF, tôi muốn biết về IObservable và liệu điều này có bất kỳ mẫu sử dụng nào trong Winforms \ WPF hay không câu hỏi. Vì vậy, không thực sự hữu ích là nó ... – AwkwardCoder