나는 모든 데이터 비트를 처리하기 위해 MVVM을 사용하는 Silverlight 페이지를 사용했습니다.Silverlight Binding
데이터 컨텍스트를 사용하여 페이지에 설정된다
DataContext="{Binding AddNewClientViewModel, Source={StaticResource ServiceLocator}}"
ServiceLocator 나 만들고 IOC는 컨테이너를 사용하여 적절한 VM을 주입 할 수있는 서비스 인.
이 모든 것이 정상적으로 작동합니다.
지금 나는 DATAFORM과 같이 있습니다 <df:DataForm CurrentItem="{Binding NewClient}" AutoGenerateFields="False" >
<df:DataForm.NewItemTemplate>
<DataTemplate>
<StackPanel>
<df:DataField>
<TextBox Text="{Binding ClientName}" />
</df:DataField>
<df:DataField>
<TextBox Text="{Binding Property_on_the_VM_not_on_NewClient}" />
</df:DataField>
</StackPanel>
</DataTemplate>
</df:DataForm.NewItemTemplate>
</df:DataForm>
좋아, 그럼이 DATAFORM 내 뷰 모델에 NewClient 속성에 바인딩합니다. 첫 번째 DataField는 NewClient.ClientName에 바인딩됩니다. 두 번째 DataField 내가 루트 ViewModel 교수형 속성에 바인딩하고 싶습니다.
바인딩 할 때 전달할 수있는 '소스'매개 변수가 있다는 것을 알고 있습니다. VM의 정적 리소스가 있거나 비슷한 점을 지적 해 놓았을 때 전달할 수 있지만, 그렇지 않습니다. 이 바인딩을 상위 VM의 속성과 어떻게 연결할 수 있습니까?
JOBI는 아래의 게시물 후 편집
, 내가 해봤 다음
<TextBox DataContext="{Binding DataContext, ElementName=root}" Text="{Binding MyProperty}" />
그리고 내 최고 수준의 제어 : 점점
x:Name="root"
DataContext="{Binding AddNewClientViewModel, Source={StaticResource ServiceLocator}}"
아니 주사위를 이 일을 ...
트릭과 같습니다. 구현 및보고합니다. – ChadT