2010-06-07 24 views
7

Khi tôi sử dụng Command trong một Button kiểm soát xử lý sự kiện mà tham gia với Click kiện này sẽ không bao giờ lớn lên,WPF lệnh với Nhấn Event Handler

Làm thế nào tôi có thể sử dụng Command và xử lý các handler Click sự kiện?

Trả lời

17

Bạn có thể đính kèm ICommand vào một thuộc tính khác và thực thi nó từ trình xử lý Nhấp chuột.

<Button x:Name="MyButton" Tag="{x:Static ApplicationCommands.Stop}" Click="MyButton_Click" /> 

và trong xử lý:

private void MyButton_Click(object sender, RoutedEventArgs e) 
{ 
    var button = sender as Button; 
    if (button != null) 
    { 
     var command = button.Tag as ICommand; 
     if (command != null) 
      command.Execute(button.CommandParameter); 
    } 
} 

Bạn cũng sẽ cần phải làm một số việc làm thêm nếu bạn muốn giữ cho hành vi vô hiệu hóa lệnh.

+0

tôi sử dụng nó, nhờ john – Tomas1

-3

Lệnh là một loại sự kiện trong tuần. Những suy nghĩ tốt về lệnh là bạn không cần phải sử dụng các sự kiện. Trên thực tế, bạn không cần phải sử dụng mã phía sau ở tất cả và các sự kiện nếu bạn sử dụng một mẫu ViewModel. Xem lệnh tiếp sức: http://blog.galasoft.ch/archive/2009/09/26/using-relaycommands-in-silverlight-and-wpf.aspx

+1

Đó là không đúng, bạn cần phải sử dụng mã sau nếu bạn muốn, bạn xem để cập nhật những thứ như SeletedItem trong ViewModel hoặc xử lý trong một cách cụ thể cách lựa chọn hoạt động. –

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