我有一个Silverlight页面使用它后面的MVVM来处理所有正在进行的数据位。Silverlight绑定
数据上下文设置为使用页面:
DataContext="{Binding AddNewClientViewModel, Source={StaticResource ServiceLocator}}"
服务定位是一个服务,它允许我创建并使用IoC容器注入适当的VM。
这一切工作正常。
现在我有数据形,像这样:
<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>
OK,所以这个数据形结合我的视图模型的NewClient财产。第一个DataField绑定到NewClient.ClientName。我希望将第二个DataField绑定到挂起根ViewModel的属性。
我知道有一个'Source'参数可以在绑定时传递,如果我有一个虚拟机的静态资源或类似的我可以指向它,但我不知道。如何将此绑定与父虚拟机上的属性链接起来?
编辑
后通过以下苡后,我已经试过如下:
<TextBox DataContext="{Binding DataContext, ElementName=root}" Text="{Binding MyProperty}" />
而我的最高级别控制:
x:Name="root"
DataContext="{Binding AddNewClientViewModel, Source={StaticResource ServiceLocator}}"
与越来越没有骰子这工作...
这看起来像个伎俩。将执行并报告回来。 – ChadT 2009-11-10 00:35:23