我想在WPF中创建一个调度程序自定义控件。我也想要这个控件是通用的,因此,例如调度程序可以保存关于笔记,工作人员,会议等事件。
所以我需要一个接口,比如IContract,它将有SaveEvent(), EditEvent()等方法。每个特定的类(注意,Meeting…)都必须实现该接口。因此,在我的视图模型中的调度程序如果我想保存事件,我将通过接口。
但是问题是,我如何传递这个实例("contract")
IContract contract = new Meeting();
到调度程序视图模型?使用我的自定义控件的人会把这些代码放到XAML
中<local:Scheduler/>
现在我可以这样做:<local:Scheduler instanceClass="Meeting"/>
然后在调度视图模型中通过反射获取实例。这是一个好的解决方案吗?
还有别的办法吗?
您可能希望在其他地方创建视图模型类,在那里手动设置要使用的实例。然后将该实例绑定到视图。
像这样:
<local:Scheduler DataContext="{Binding Event}"/>
您可以选择为绑定创建DataContext
以外的其他属性