在設計時Visual Studio將嘗試創建YourUserControl的新即時器 與無參數構造器。
這樣
var myView = new MyUserControl(); //no params
設計師,如果你不能創造用戶控件瞬間將無法呈現。
如果YourUserControl需要任何參數。最流行的關鍵是要創造奉獻構造這樣
public MyUserControl() :
this(new MockViewModel(), new MockDataContext){ } // mock Designtime constructor
puclic MyUserControl(IViewModel vm, IDataContext context) //runtime constructor
{
}
在MVVM模式
一些UserControl.DataContext是需要一些PARAMS XAML
<UserControl.DataContext>
<local:MyViewModel />
</UserControl.DataContext>
您必須定義參數的構造函數用戶定義類型爲設計時環境。
public MyViewModel() : this(new MockEventAggregator()) //for designtime
{ }
[ImportingConstructor]
public MyViewModel(IEventAggregator eventAggregator) //for runtime
{
this._eventAggregator = eventAggregator;
//...
}