2012-07-09 16 views
9

Sử dụng MVVM-Light Toolkit trong Silverlight 5, tôi đang cố gắng tìm một cách để vượt qua Command ParametersEventArgs cả ViewModel trong một hành vi tổ chức sự kiện-To-Command.MVVM-Light => đèo lệnh Parameter VÀ EventArgs lệnh

Tôi đã tìm thấy bài đăng đề xuất Chuyển sự kiệnArgs dưới dạng tham số lệnh nhưng trong trường hợp của tôi, tôi muốn sử dụng EventArgsCommand Parameter cả trong ViewModel.

Mọi người đều có thể trợ giúp?

+0

điều này thậm chí có thể sử dụng bộ công cụ MVVM-Light không? – Thr3e

+0

Tôi sẽ tạo một đối tượng nhẹ chứa thông tin tôi cần từ sự kiện arg và đối tượng mà tôi thường gửi là tham số lệnh và chỉ sử dụng đối tượng nhẹ mới làm tham số lệnh của tôi. –

+0

@StewartSweet Xin lỗi, nhưng làm cách nào bạn có thể tạo một đối tượng như vậy trong chế độ xem? bạn có thể vui lòng cho thấy một ví dụ? – Thr3e

Trả lời

11

Giải Quyết Vấn đề .... trong trường hợp nếu có ai khác đang tự hỏi ...

Khái niệm: Chúng tôi chỉ cần phải vượt qua EventArgs qua tổ chức sự kiện MVVM-Light để chỉ huy. Trong trường hợp có Lệnh, có một thuộc tính Nguồn. chúng ta có thể tạo thuộc tính 'Source' này cho đối tượng đã tạo ra lệnh này.

Ví dụ:

chúng tôi tuyên bố lệnh với EventArgs trong ViewModel Constructor

FilterQuotationsCommand = new RelayCommand<GridViewFilteredEventArgs>(FilterQuotationsCommandExecute); 

Và chúng tôi Truy cập Sender qua "Nguồn" sau khi đúc nó để điều khiển gửi.

private void FilterQuotationsCommandExecute(GridViewFilteredEventArgs e) 
    { 
     var grid = (RadGridView) e.Source; // we casted the Source to Grid 
     var item = grid.SelectedItem;  // we can access grid's selected items 
    }