2010-06-08 6 views
3

컨트롤에 XAML로 연결된 이벤트 (예 : Button.Click)가있는 시나리오가 있습니다.Silverlight 컨트롤 이벤트 비활성화/제거

내 코드의 다른 곳에서 보안 확인이 적용되어 해당 이벤트를 사용하지 않도록 설정해야하지만 일반 - = 구문을 사용하여 해당 내용을 제거 할 수는 없습니다.

어떻게이 이벤트를 제거하거나 비활성화 할 수 있습니까?

감사합니다, 데이브

답변

2

데이터는 어디서든 코드로 업데이트 할 수 있습니다 모델 클래스 /의 DataContext에 버튼의 IsEnabled 속성을 바인딩합니다.

더 많은 제어가 필요한 경우, click 이벤트 또는 기본 비즈니스 오브젝트에 대한 토큰을 가진 사전 또는 "승인 된"단추 목록을 갖는 것을 고려하십시오. 계속하기 전에 Click 이벤트에서 토큰/개체/특수한 것이 있는지 확인하십시오.

+0

감사합니다. Jeff. 실제로 IsEnabled 작업을 수행했지만, IsEnabled와 같은 충실도가 더 필요합니다. 예를 들어, DataGrid에서 특정 이벤트에 대한 보안을 적용해야합니다 ... – Dave

+0

이를 반영하도록 업데이트되었습니다. –

+0

안녕하세요 제프, 실제로하고있는 일은 각 컨트롤에 필요한 보안 클레임/요구 사항을 불러오는 첨부 된 속성을 사용하는 것입니다. 그렇게하면 코드 숨김을 사용하지 않고 요구 사항을 충족하는 XAML을 꾸밀 수 있습니다. 실제로 ViewModel에서 내 명령에 연결하여 해당 명령에 대한 액세스를 제어했습니다. "다음 번에"나는 이벤트 핸들러를 추가하는 팩토리 패턴을 고려해 볼 수 있습니다. 이벤트 핸들러는 액세스를 관리하므로 적절한 핸들러를 추가 할 수 없습니다. 조언/도움을 주셔서 감사합니다. 데이브 – Dave