我正在尝试将ViewModel中的Canvas对象映射到View中的Canvas对象。
然而,当我运行时,我收到“CompositionException未被用户代码处理”错误。在ViewModel中注释掉我的Canvas对象可以防止错误,所以我猜Caliburn正试图映射它并引发错误。
答案 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