2010-03-23 14 views
2

(예를 들어) MyPanel이라는 사용자 지정 UserControl이 있는데 다른 XAML 파일에서 사용하고 싶습니다. 다음과 나는 같은 MyPanel이 배치되는으로 XAML 파일에서 "제목"으로 MyPanel의 속성을 설정하려는 :아주 기본적인 Silverlight 바인딩 질문

<UserControl x:Name="ContainerControl"> 
    <local:MyPanel Title="Whatever I Want" /> 
</UserControl> 
나는 다음을 채우는 MyPanel의 "제목"속성에 대한 싶습니다

MyPanel의 TextBlock입니다. MyPanel에서 이러한 속성을 지원하도록 코드 및/또는 XAML을 설정하려면 어떻게합니까?

나는 이것이 바인딩으로 간주되는지조차 모르므로, 이것이 틀린 경우 내 무지를 변명하십시오. 내가 생각할 수있는

답변

2

가장 간단한 해결 방법은 다음과 같습니다 -

MyPanel의 XAML : -

<UserControl x:Class="SilverlightApplication1.MyPanel" ...> 
    <Grid x:Name="LayoutRoot"> 
    <TextBlock x:Name="txtTitle" /> 
    <!-- other stuff here --> 
    </Grid> 
</UserControl> 

MyPanel.cs : - 다른 "똑똑한"솔루션이 있습니다

public partial class MyPanel : UserControl 
{ 
    // constructor stuff here. 

    public string Title 
    { 
     get { return txtTitle.Text; } 
     set { txtTitle.Text = value; } 
    } 
} 

하지만,이 이 요구 사항에 충분히 적합합니다.

+0

Perfect! 그리고 돌이켜 보면 분명합니다. 나는 그것을 완전히 DependencyProperty 또는 무엇이든 만들 필요가 있다고 걱정했다. – Klay

+0

이 경우 DependencyProperty는 필요하지 않으며 필요한 가장 단순한 솔루션을 제공하는 것을 선호합니다. 그러나 당신이'MyPanel' 컨트롤과 데이터를 재사용하고 싶다면'Title' 속성을 바인드하려면 DependencyProperty로 구현해야합니다. – AnthonyWJones

관련 문제