Caliburn是否需要给定对象的元素约定来将ViewModel实例映射到View实例?

时间:2011-01-13 20:50:06

标签: silverlight caliburn caliburn.micro

我正在尝试将ViewModel中的Canvas对象映射到View中的Canvas对象。

然而,当我运行时,我收到“CompositionException未被用户代码处理”错误。在ViewModel中注释掉我的Canvas对象可以防止错误,所以我猜Caliburn正试图映射它并引发错误。

1 个答案:

答案 0 :(得分:0)

ViewModel中的Canvas对象是View中的Canvas对象吗?

我不认为Caliburn会这样做。 Caliburn希望您将属性/方法映射到页面上的控件。

所以:视图模型

public MyModel Models
{
    get{return _values;}
    set{ 
         _value=values;
         RaisePropertyChangedImmediately("Models");
       }
}

public MyModel SelectedModel
{
    get{return _value;}
    set{ 
         _value=value;
         RaisePropertyChangedImmediately("SelectedModel");
       }
}

查看:

<ListBox x:Name="Models/>

此代码的作用是将SelectedModel链接到ListBox的“SelectedItem”属性,将Models属性链接到“ItemsSource”属性并连接CheckedChange事件,以便在用户单击时更改SelectedItem

在Caliburn有一个很棒的文档部分,值得仔细阅读他的例子:Caliburn Micro Docs