2010-05-14 2 views
0

저는 Silverlight (WPF 경험 없음)로 작업하기 시작했으며 데이터 바인딩에 대한 완전한 설명을 제공하는 소스를 찾기가 어려워요. 실버 라이트 닷넷이나 스캇 구의 블로그에서 시작하는 자습서가 전혀 부족하지 않지만, 내가 찾은 모든 것은 "예제"에 의한 것입니다.Silverlight 4 데이터 바인딩의 기초 학습

Silverlight에서 기본/개념적 관점에서 데이터 바인딩이 작동하는 방식을 설명하고 데이터 바인딩 기능에 대한 포괄적 인 적용 범위를 제공하는 리소스가 있습니까?

정보의보다 근본적인 소스가 같은 샘플 응용 프로그램, 자습서를 검토하고 서면으로 오늘 오후에 와서 질문들에 의해 구동을위한 욕망 :

  • 왜 내가 값을 바인딩 할 수 없습니다를 (예 : Visual Studio 오류 메시지가 인 경우 : 값 = "{Binding = Age, Mode = TwoWay}"여기서 Age는 개체 데이터 컨텍스트의 속성을 나타냅니다. [] '
  • VS 2010의 DataContext 속성은 어떻게 사용합니까? 경로, 상대 소스, 정적 S는 무엇입니까? ource, ...?

답변

1

Silverlight의 데이터 바인딩 엔진은 WPF와 매우 비슷합니다. 괜찮은 개요는 여기 http://msdn.microsoft.com/en-us/library/ms752347.aspx입니다.

는 특정 질문에 대답하려면 :

  • 당신은 그렇게 할 수 있어야합니다. 방금 블렌드에서 약간의 프로젝트를 만들었습니다. 좋은 결과를 얻었습니다. 까다로운 점은 데이터 바인딩 엔진이 실제로 내부적으로 double과 int 사이에서 변환하는 것입니다 (Slider.Value가 double이므로).

  • DataContext는 트리의 해당 요소 아래에있는 바인딩 표현식의 컨텍스트를 설정하는 데 사용됩니다. 경로는 기본적으로 DataContext에 상대적입니다. 예를 들어 루트 요소의 DataContext를 DataContext="{Binding RelativeSource={RelativeSource Self}}"을 사용하여 설정 한 경우 <TextBlock Text="{Binding Width}" />과 같은 것을 추가하여 루트 요소의 너비를 나타내는 TextBlock을 추가 할 수 있습니다. 경로는 암시적인 인수 일 뿐이므로 "{Binding Path=Width}"을 수행 할 수 있으며 동일한 작업을 수행합니다.

  • 상대 소스를 사용하면 {RelativeSource Self}와 같은 DataContext 대신 다른 소스를 사용할 수 있습니다.