Tôi có ứng dụng MVVM WP7 trong đó tôi đang cố gắng gửi giá trị từ một Page/ViewModel đến contructor của ViewModel thứ hai. Tôi đã có Ninject thiết lập và nhận được điều này để làm việc với một giá trị thử nghiệm tĩnh sử dụng một dòng như:Ninject: Thực hiện WithConstructorArgument (tên chuỗi, Func <IContext, đối tượng> gọi lại)
this.Bind<TaskViewModel>().ToSelf().WithConstructorArgument("TaskID", 2690)
Một lần nữa, làm việc với một giá trị tĩnh nhưng tôi cần nó để được một biến bởi người sử dụng lựa chọn. Tôi đã được yêu cầu sử dụng quá tải
WithConstructorArgument(string name, Func<IContext,object> callback).
Tôi cho rằng cuộc gọi lại này sẽ gọi hàm trên ViewModel đầu tiên và nhận giá trị.
Nhưng tôi đã không thành công, dễ dàng thừa nhận tôi không có kinh nghiệm trong Ninject hoặc sử dụng đối số gọi lại Func. Tôi đã thử thiết lập một đại biểu và chức năng để có được giá trị từ ViewModel đầu tiên nhưng điều đó cho một lỗi nói rằng tôi đang cố gắng để vượt qua trong một loại. Làm thế nào chính xác để tôi xác định rằng đối số để sử dụng một cuộc gọi lại và tôi có đúng để sử dụng một đại biểu trong ViewModel đầu tiên hoặc cái gì khác?
Bạn có chắc chắn rằng đây là ý tưởng tốt để sử dụng tiêm phụ thuộc theo cách như vậy? Tôi có nghĩa là để giải quyết phụ thuộc thành phần dựa trên đầu vào của người dùng? –
Nó đã được giới thiệu cho tôi bởi một người mà tôi cho là rất am hiểu về Ninject, như tôi đã nói trong câu hỏi của mình, tôi không. Nếu bạn có một giải pháp phù hợp thats phù hợp với MVVM tôi chắc chắn mở để thay đổi cách tiếp cận của tôi. – Walter
@Waltedbn: Remo Gloor là nhà phát triển hoạt động hiện tại của dự án Ninject. Anh ấy là người thông thái nhất về chủ đề này trên thế giới. Nghe anh ấy. – StriplingWarrior