1
我使用AvalonDock和MEF插件架構, 每個插件都返回一個數據模板主機,主機獲取數據模板,插入到主數據模板。如何將多個數據模板插入到主日期模板
以下是在被轉換成的DataTemplates
用戶控件MainMethodView:包括選項卡,
PluginA的MethodView:需要被插入到MainMethodView的標籤項1.
PluginB的MethodView:需要被插入到MainMethodView的標籤條目2中。
.....
謝謝。
代碼:InitializePlugins()我只有能顯示一個插件的DataTemplate中。和GetMethodViewTemplate()給我錯誤:ContentControl的內容必須是單個元素。
參考:Link1
public void InitializePlugins(){
var templateSelector = new PanesTemplateSelector();
templateSelector.MethodViewTemplate = pluginService.Plugins[0].MethodViewTemplate;
_dockingManger.LayoutItemTemplateSelector = templateSelector;
}
private static DataTemplate GetMethodViewTemplate(PluginService pluginService) {
FrameworkElementFactory factory = new FrameworkElementFactory(typeof(MethodView));
foreach (var plugin in pluginService.Plugins) {
FrameworkElementFactory fef = new FrameworkElementFactory(typeof(ContentControl));
fef.SetValue(ContentControl.ContentTemplateProperty, plugin.MethodViewTemplate);
factory.AppendChild(fef);
}
DataTemplate dt = new DataTemplate();
dt.VisualTree = factory;
return dt;
}
的另一個問題是數據綁定,MainMethodViewModel具有插件,如何將其綁定到MainMethodView PluginMethodViewModels。