Windows Phone应用程序:绑定ListBox中包含的UserControl中的数据

时间:2012-10-17 20:00:59

标签: data-binding user-controls listbox windows-phone

我有一个" 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>

1 个答案:

答案 0 :(得分:0)

您需要将usercontrol上的datacontext设置为这样的项目。

<usercontrols:AddressDetails DataContext={Binding} ... </usercontrols:AddressDetails>

现在你的其他绑定应该正常工作,因为它们是相对于项目的。