2009-07-14 5 views
0

WPF 컨트롤은 여러 가지 바구니로 구분됩니다. 일부 컨트롤은 System.Windows.Controls 네임 스페이스에 속하며 다른 컨트롤은 Panel 및 기타 항목에 속합니다. Panel 또는 Control 유형으로 컨트롤을 가져와 Background 속성을 변경할 수 있습니다. 다음 코드는 작동하지 않습니다 :WPF의 배경 속성 문제

var element = ((sender as Panel) ?? (sender as Control)); 

답변

6

"마법의"var 키워드는 여전히 정적으로 (컴파일 타임에) 해결되었으므로 새로운 dynamic C# 4.0 키워드를 생각해 볼 수 있습니다.

그렇지 않으면, 다른 것보다

Panel panelElement = sender as Panel; 
Control controlElement = sender as Control; 

if(panelElement != null) 
    //do stuff for panel 
else if(controlElement != null) 
    //do stuff for control 
을 할 수있는 다른 방법이 없습니다
1

컴파일러는 사용자가 제공 한 표현에서 element의 유형을 추론 할 수 없습니다.