当我在WPF ListBox
中同时拥有ItemsSource
和ItemTemplate
时,我对绑定是如何解析感到困惑。
我有一个名为ListOfIndexes
的ObservableCollection<int>
。 对于每个索引,我希望在数据库表中查找其记录。 我希望在IndexToObjectDescriptionConverter
中实现这个功能。
<ListBox ItemsSource="{Binding ListOfIndexes}"
ItemTemplate="{Binding Converter={StaticResource IndexToObjectDescriptionConverter}}" />
但是我在转换器中设置断点后发现,被
ItemTemplate
绑定读取的值是窗口本身 - 也就是说,ItemsSource
和ItemsTemplate
的DataContext
是相同的。
不好意思直言,但这似乎很愚蠢。 ItemTemplate
的整个作用是渲染ItemsSource
中的每个元素,因此我猜想ItemTemplate
的DataContext
将是正在呈现的单个元素。
所以,我的问题是如何告诉ItemTemplate
它应该关注由ItemsSource
表示的单个元素,而不是使用整个窗口的DataContext
?
ItemTemplate
中的DataTemplate
会正确地识别数据上下文,而只是在ItemTemplate
中定义绑定则使用控件的作用域。谢谢! - James Cronen