在listbox中指定绑定源到usercontrol

时间:2012-02-07 13:30:09

标签: wpf

如何为用户控件指定数据源:

<ScrollViewer VerticalScrollBarVisibility="Visible" VerticalAlignment="Stretch">
    <ListBox ItemsSource="{Binding}">                                
        <ListBox.ItemTemplate>
            <DataTemplate>
                <local:ucMyControl />
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
</ScrollViewer>

ucMyControl如何知道要采取什么值?我意识到lisbox会创建与bondong集合中的项目一样多的ucMyControls吗? 此外,滚动查看器不起作用 - 我无法进入第3控制(无论如何它们都是空的,但我希望你能给我带来如何绑定它。)

1 个答案:

答案 0 :(得分:0)

ItemsControls中的ItemTemplate实例化的控件(例如ListBox)将DataContext属性自动设置为Items中的相应项}或ItemsSource ItemsControl的集合。

因此,如果您有一组Person个对象,其属性为FirstNameLastName为ListBox项,则可以在UserControl中以这样的方式绑定:

<UserControl ...>
    <StackPanel>
        <TextBlock Text="{Binding Path=FirstName}"/>
        <TextBlock Text="{Binding Path=LastName}"/>
    </StackPanel>
</UserControl>

您无需显式设置DataContext属性。