我目前在我的应用程序顶部使用ItemsControl
,其中包含几个按钮,绑定到ViewModelBases列表。这些虚拟机是我的应用程序的页面。单击时,他们将当前页面设置为适当的页面。内容呈现器显示当前视图模型,DataTemplate
将其转换为正确的视图。
如何在这些视图中使用数据绑定?由于视图是由ViewModel创建的,这是否意味着我无法在视图中创建该视图模型的新实例?如何找到要绑定的正确实例?或者,它会自动绑定吗?
答案 0 :(得分:1)
WPF ItemsControls自动将屏幕上呈现的每个项目的DataContext设置为底层集合中的相应项目。这意味着,如果你有一个IEnumerable设置为ItemsControl(或任何其他ItemsControl派生类,如ListBox)的ItemsSource,它将呈现屏幕上的每个项目(使用任何可用的DataTemplates)并自动分配DataContext属性每个ViewModelBase项的结果视觉元素。