我有一个" AddressListBox" ListBox包含" AddressDetails" UserControl项,如下面的.xaml文件中所示。 Addresses集合定义为
的ObservableCollection<地址>地址
和Street,Number,PostCode,City是Address类的属性。当我使用" {Binding属性}"时,绑定失败了。语法如下所示。绑定成功,当我使用" dummy"注释掉的代码中的字符串。我也试过" {Binding Path = property}"语法没有成功。你能建议我用什么语法来绑定用户控件中的数据吗?
<ListBox x:Name="AddressListBox"
DataContext="{StaticResource dataSettings}" ItemsSource="{Binding Path=Addresses, Mode=TwoWay}">
<ListBox.ItemTemplate>
<DataTemplate>
<!--
<usercontrols:AddressDetails AddressRoad="dummy" AddressNumber="dummy2" AddressPostCode="dummy3" AddressCity="dummy4">
</usercontrols:AddressDetails>
-->
<usercontrols:AddressDetails AddressRoad="{Binding Street}" AddressNumber="{Binding Number}" AddressPostCode="{Binding PostCode}" AddressCity="{Binding City}">
</usercontrols:AddressDetails>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
答案 0 :(得分:0)
您需要将usercontrol上的datacontext设置为这样的项目。
<usercontrols:AddressDetails DataContext={Binding}
...
</usercontrols:AddressDetails>
现在你的其他绑定应该正常工作,因为它们是相对于项目的。