티스토리 뷰

반응형

실버라이트의 C#은 언어만 C#이지 그 구동방식은 조금 상이합니다.


웹 기반이기 때문에



응용프로그램 어플 개발을 위한 c#이라고 생각하시면 안되고,



asp.net 처럼 aspx 와 aspx.cs끼리 연동을 위한 c#처럼 생각하시면 됩니다.




즉,



실버라이트 C#은 xaml 과 xaml.cs 간의 연동입니다.




오늘은,


몇몇분의 문의가 있어서 글을 하나 써봅니다.



최초 프로젝트 생서시 내가 공통으로 쓰고 싶은 클래스를 만들었는데,


상속을 할수가 없다.


왜?  UserControl이라는 기본 컨트롤을 상속하고 있어서.......




그럼, UserControl을 상속하는 클래스를 만들어서 그놈을 상속시키면 될텐데??



그게 잘 되지 않는다.



흠..




원인은...xaml과 xaml.cs간의 연동이 안되어서입니다.





자 그럼 시작해 봅시다.




1. 내가 공통으로 쓰고 싶은 클래스를 하나 만든다.  이름은 UserControlClass 라고 한다.

    그리고, 그 클래스 공통 메소드로 쓰일것을 하나 만든다.







2. 이 클래스를 상속할 샘플 페이지를 만든다.

    편의상 질문자님의 요청이 있었던 이름 Card1, Card2 를 만든다.

    그리고 그 Card1에 상속한다.





여기 Card1에 메소드 하나를 만든다. 공통 클래스 메소드를 사용하는






3. 같은 방법으로 Card2도 만든다.




4. 자, 이제 빌드 시켜서 쓸라면? 에러가 납니다. 당연하지요. cs단은 바꿨는데 xaml단을 안 바꿔서 그래요.

   봅시다.


우선, xaml단에서 사용할 네임스페이스를 하나 지정합니다.

local이라고 이름 지읍시다.



    xmlns:local="clr-namespace:SilverlightApplication1"



뒤에 SilverlightApplication1 는 프로젝트 네임스페이스 입니다.



이제 local이란 이름으로 사용할수가 있게 되겠죠.



처음 소스를 보면



<UserControl></UserControl> 로 감싸져 있습니다. 최초에 저걸로 상속받아져있으니 그렇겠죠?

 

이걸바꿔줘야 합니다.








자, 이제 Card1, Card2에 같은 메소드를 만들고,








이 AA라는 메소드를 실행해 봅시다.


MainPage.xaml 에서 해봅시다.




이렇게 코딩하고 실행하면!!!!




이런 창이 두번뜨겠죠? 카드1, 카드2로요 ^^;



그럼 다음에 또 뵈요 ~~~



Written by Angelma  ( Microsoft C# MVP )

반응형
댓글