如何为用户控件指定数据源:
<ScrollViewer VerticalScrollBarVisibility="Visible" VerticalAlignment="Stretch">
<ListBox ItemsSource="{Binding}">
<ListBox.ItemTemplate>
<DataTemplate>
<local:ucMyControl />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</ScrollViewer>
ucMyControl如何知道要采取什么值?我意识到lisbox会创建与bondong集合中的项目一样多的ucMyControls吗? 此外,滚动查看器不起作用 - 我无法进入第3控制(无论如何它们都是空的,但我希望你能给我带来如何绑定它。)
答案 0 :(得分:0)
从ItemsControls
中的ItemTemplate实例化的控件(例如ListBox
)将DataContext属性自动设置为Items
中的相应项}或ItemsSource
ItemsControl的集合。
因此,如果您有一组Person
个对象,其属性为FirstName
且LastName
为ListBox项,则可以在UserControl中以这样的方式绑定:
<UserControl ...>
<StackPanel>
<TextBlock Text="{Binding Path=FirstName}"/>
<TextBlock Text="{Binding Path=LastName}"/>
</StackPanel>
</UserControl>
您无需显式设置DataContext属性。