2012-02-19 24 views
5

tôi nhận thấy rằng đoạn mã sau:Có ràng buộc IsEnabled tùy chọn khi ràng buộc Command không?

<Button Content="_Timbres..." 
    Command="{Binding Path=ShowTimbresCommand}" 
    IsEnabled="{Binding Path=CanExecuteShowTimbresCommand}"/> 

cư xử bình đẳng như:

<Button Content="_Timbres..." 
    Command="{Binding Path=ShowTimbresCommand}"> 

Nghĩa là các CanExecuteShowTimbresCommand được tự động liên kết với các tài sản IsEnabled. Điều đó có đúng không và tại sao?

Trả lời

10

Thông thường điều khiển mà chấp nhận một Command sẽ thiết lập IsEnabled-false nếu của CanExecute lệnh là false, đó là tất cả để có nó.

MSDN:

Một mục đích của lệnh là để cho biết một hành động có sẵn. [...] Nút có thể đăng ký sự kiện CanExecuteChanged và bị vô hiệu hóa nếu CanExecute trả về false hoặc được bật nếu CanExecute trả lại đúng.

+0

Cảm ơn ... điều đó có nghĩa là tôi có thể xóa nhiều mã XAML. –

+1

@MichelKeijzers: Nếu bạn cho đến nay luôn luôn đối phó với 'IsEnabled' mình thực sự là trường hợp. –

+0

Có Tôi hiện có ở mọi nơi một lệnh ràng buộc cùng với IsEnabled = CanExecute cho cùng lệnh đó. Tôi cho rằng chỉnh sửa thêm bạn đã thực hiện trong câu trả lời được thực hiện tự động. –

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