2010-05-19 5 views
1

두 개의 텍스트 블록 컨트롤이 있으며 모두 단일 이벤트를 호출합니다. 하지만 난 invidividually 내가 한Silverlight의 모든 컨트롤에 대한 하나의 공통 이벤트

+0

이 문제에는 여러 가지 변종이 있으므로 질문이 모호하지 않습니다. 시각적 트리에 다른 TextBlocks (다른 컨트롤의 템플릿에 포함될 수있는 TextBlocks를 포함)가 발생하지 않도록 할 수 있습니까? 이러한 TextBlock에는 공통 부모가 있습니까? 어쨌든 왜 그런 문제가 생기면 정말로 "커플"입니까? – AnthonyWJones

답변

1

에 의해 그들에게 하나의 배선없이 모든 TextBlock의에 마우스 이동을 적용 할 수있는 방법이 있나요

TextBlock1.MouseMove += new MouseEventHandler(TextBlock_MouseMove);  
TextBlock2.MouseMove += new MouseEventHandler(TextBlock_MouseMove); 
TextBlock3.MouseMove += new MouseEventHandler(TextBlock_MouseMove); 

를 사용하여 모든 배선해야 당신은 수있는 모든 자식 컨트롤을 반복 양식을 만들고 각 텍스트 블록에 이벤트 처리기를 추가하십시오. 그 textblocks이 같은 그리드에있는 경우/어떤 코드가 조금 다음과 같아야합니다

foreach(TextBlock vControl in GridName.Children) 
{ 
    vControl.MouseMove += new MouseEventHandler(TextBlock_MouseMove); 
} 

지금 내가 잘못 그것의 'foreach는'부분이있을 수 있습니다. Children 컬렉션에 저장되는 방법에 따라 객체에서 캐스팅해야 할 수도 있습니다. 많은 텍스트 상자로 끝내면이 방법이 좋겠지 만 마우스 이동시 명령을 내릴 수있는 텍스트 상자의 스타일을 지정할 수도 있습니다.하지만 코드를 쌓아 올리면 훨씬 쉽게 할 수 있습니다.

+0

이 코드는 관심있는 모든 TextBlock이 특정 패널의 직접 자식이며 패널의 모든 TextBlock이 관심 대상이라고 가정합니다. – AnthonyWJones

관련 문제