1

我有一个“AddressListBox”列表框,其中包含“AddressDetails”用户控件项,如下面的 .xaml 文件提取所示。Addresses 集合定义为

ObservableCollection< 地址 > 地址

Street、Number、PostCode、City 是 Address 类的属性。当我使用如下所示的“{Binding property}”语法时,绑定失败。当我在注释掉的代码中使用“虚拟”字符串时,绑定成功。我也尝试过“{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>
4

1 回答 1

0

您需要将用户控件上的数据上下文设置为这样的项目。

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

现在您的其他绑定应该可以正常工作,因为它们与项目相关。

于 2012-10-17T22:57:57.730 回答