gpt4 book ai didi

mvvm - Prism/mef ViewModel : pro and con of property against ctor

转载 作者:行者123 更新时间:2023-12-03 10:13:45 29 4
gpt4 key购买 nike

在 StockTraderRI 示例代码中, View 模型由 MEF 使用属性注入(inject):

[Export(typeof(IOrdersView))]
[PartCreationPolicy(CreationPolicy.NonShared)]
public partial class OrdersView : UserControl, IOrdersView
{
public OrdersView()
{
InitializeComponent();
}

[Import]
[SuppressMessage("Microsoft.Design", "CA1044:PropertiesShouldNotBeWriteOnly", Justification = "Needs to be a property to be composed by MEF")]
public IOrdersViewModel ViewModel
{
set { this.DataContext = value; }
}
}

我想知道的是:为什么不使用这样的 ImportingConstructor 来注入(inject) ViewModel:
[Export(typeof(IOrdersView))]
[PartCreationPolicy(CreationPolicy.NonShared)]
public partial class OrdersView : UserControl, IOrdersView
{
[ImportingConstructor]
public OrdersView(IOrdersViewModel ViewModel)
{
InitializeComponent();
this.DataContext = ViewModel;
}
}

是否有一个特殊的功能、问题或原因我想念为什么 StockTraderRI 示例确实使用属性而不是 ctor 的参数?

最佳答案

因为在 XAML 中部分定义的类型不能很好地与参数化构造函数配合使用。 XAML 建立在“创建空白对象并随后填写属性”范例之上。

关于mvvm - Prism/mef ViewModel : pro and con of property against ctor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4592884/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com