2009-04-01 3 views
0

기본적으로 값을 1 씩 증가 또는 감소시키는 작은 사용자 정의 컨트롤이 있습니다. 사용자 정의 컨트롤에는 두 개의 버튼 (하나는 추가하고 다른 하나는 빼기)과 값을 표시하는 데 사용되는 textBlock이 있습니다.Silverlight에서 다른 사용자 컨트롤의 textBlock을 데이터 바인딩

다른 usercontrol에이 usercontrol의 인스턴스가 여러 개있을 예정이므로 INotifyPropertyChanged 인터페이스가있는 데이터 클래스의 값을 조작 할 수 있습니다. 내 질문은 어떻게 내가 그것을 instansiated usercontrol usercontrol 값을 변경 textBlock databind 수 있습니까?

답변

4

먼저 Silverlight 2는 요소 대 요소 바인딩을 지원하지 않는다고 말하고 싶습니다. 이 기능은 Silverlight 3에 추가되었습니다 (지금 베타 버전에 있음). 그렇게 말하면서, 어쨌든 당신이 통제를 함께 묶고 싶지는 않다고 생각합니다. NumericUpDown 컨트롤을 만들려고하는 것처럼 들리 겠지만 실제로 코드의 일부 클래스가 증가 및 감소하고있는 것 같습니다.

그렇다면 클릭 핸들러를 구독하고 증분 또는 감소와 같은 모델에서 메소드를 호출하면됩니다. 모델에서 현재 값에 대한 속성을 노출 할 수 있으며 해당 속성은 텍스트 상자에 바인딩 된 것입니다.

이제 NumericUpDown 컨트롤을 실제로 만들려고한다면 Silverlight Toolkit을 확인해보십시오. 툴킷에는 이미이 컨트롤이 포함되어 있으며 데이터 바인딩도 지원합니다.

NumericUpDown 컨트롤 here을 확인하고 툴킷 here을 다운로드하십시오.

마지막으로 자식 컨트롤에서 부모 컨트롤로의 바인딩은 실제로 다르지 않습니다. 부모 UserControl에는 DataContext가 있고 모든 자식 컨트롤은 상속합니다. 각 개별 자식 컨트롤은 해당 DataContext를 설정할 수도 있습니다. 바인딩 식은 항상 DataContext와 관련이 있으며 DataContext는 코드에서 설정할 수 있습니다. 당신의 경우 아마 일종의 모델 일 겁니다.

도움이 되었기를 바랍니다.

관련 문제