Xin vui lòng, đừng phán xét nghiêm túc nếu câu hỏi này đã được thảo luận trước đó hoặc gián tiếp được trả lời trong các lăng kính khổng lồ và mvvm gần đó. Thực hiện WPF của lớp RelayCommand hoặc DelegateCommand có một eventhandler nhưMVVM (ICommand) trong Silverlight
/// <summary>
/// Occurs whenever the state of the application changes such that the result
/// of a call to <see cref="CanExecute"/> may return a different value.
/// </summary>
public event EventHandler CanExecuteChanged
{
add { CommandManager.RequerySuggested += value; }
remove { CommandManager.RequerySuggested -= value; }
}
nhưng trong SL tập con của không gian tên không có lớp CommandManager. Và đây là nơi tôi bị mắc kẹt. Tôi chưa tìm thấy một workaround cho việc này trong MVVM chấp nhận cho SL (PRISM là quá phức tạp đối với tôi được nêu ra). Các ứng dụng HelloWorldMVVM đơn giản khác nhau không giải quyết chút nào.
Cảm ơn trước và xin lỗi vì tiếng Anh của tôi -)
Tôi nghĩ rằng bạn có một chút sai - có hỗ trợ của ICommand (có thể bị giới hạn, nhưng nó tồn tại và lớp ICommand tồn tại) trong Silverlight 2 –
Đúng là giao diện 'ICommand' được định nghĩa trong Silverlight, nhưng nó không được sử dụng ở bất cứ đâu, và toàn bộ cơ sở hạ tầng chỉ huy trong WPF hoạt động rất tốt với mẫu MVVM vắng mặt trong Silverlight. –
Cảm ơn. Tôi nghĩ rằng sự hiện diện của ICommand có nghĩa là hỗ trợ chỉ huy đầy đủ, vì vậy tôi đã sai - (Vì vậy, nó chỉ ra rằng MVVM thực hiện trong SL không phải là dễ dàng như vậy, như trong WPF.Tôi tìm thấy chỉ có một cách bây giờ - sử dụng propertis kèm theo và behavoir giống như này: http://blogs.southworks.net/jdominguez/2008/08/icommand-for-silverlight-with-attached-behaviors/ hoặc sử dụng khung làm việc sẵn sàng, nơi nhiều sự kiện được chấp nhận http: // nroute. codeplex.com –