0

我正在尝试使用 caliburn.micro 导体。根据文档,导体不一定需要是 Screen 类型,它实际上可以是任何 POCO。

所以我像这样创建我的类:

public class StoreContentsViewModel : Conductor<MyItem>.Collection.OneActive
{
    protected override void OnInitialize()
    {            
        ...
        foreach (MyItem item in Collection)
        {
            Items.Add(item);
        }            
        ActivateItem(Items[0]);
    }
}

但我收到绑定错误

 System.Windows.Data Error: BindingExpression path error: 'Items' property not
 found on 'MyItem' (HashCode=107597610). BindingExpression: Path='Items' 
 DataItem='MyItem'  HashCode=107597610); target element is 
 Microsoft.Phone.Controls.Pivot' (Name='Items'); target property is 
 ItemsSource' (type 'System.Collections.IEnumerable')..

我以为是 Conductor 类实现了 Items 列表,但 caliburn 试图绑定 MyItem。这是为什么?我想要一个 Pivot,它接收可绑定属性 Items 中的 MyItem 列表,并根据我定义的 ItemTemplate 显示它们。我需要一个 ViewModel 吗?我已经阅读了几次文档,但我仍然迷路,你能解释一下发生了什么吗?

4

1 回答 1

0

发现问题了!我在包含 Pivot 的网格中设置了一个 DataContext,覆盖了 ViewModel 的约定 DataContext。我删除了它并且工作完美。

因此,您确实可以在导体中使用任何 POCO。

于 2013-01-09T15:30:51.217 回答