【发布时间】:2020-07-27 07:29:07
【问题描述】:
视图中有一个名为 Items 的 ItemsControl,而 ViewModel 包含一个 BindableCollection<T> 属性 Items 属性,我希望它们通过使用 caliburn.micro 中的命名约定机制正确绑定,但是它不起作用正如预期的那样。
当我在视图中显式添加ItemsSource="{Binding Items}" 时,它起作用了,我想知道在 ItemsControl 中使用命名约定时遗漏了什么关键点?
【问题讨论】:
-
ItemsSource = "Items"将字符串"Items"分配给 ItemsSource 集合,即项目将是这五个字符。目前尚不清楚您指的是哪种命名约定。您通常会在视图的 DataContext 对象(即视图模型)中有一个名为 Items 的公共属性,并将其绑定为ItemsSource="{Binding Items}"。 -
我已经更新了描述。我刚刚在
ConventionManager类的静态构造函数中找到了AddElementConvention<ItemsControl>(ItemsControl.ItemsSourceProperty, "DataContext", "Loaded"),我认为它会将ItemsControl的ItemsSource属性绑定到相同的属性在 ViewModel 中定义的名称。
标签: wpf naming-conventions caliburn.micro itemscontrol