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