0

我正在尝试使用以下代码显示 PluginManagerView 的实例。

此 XAML 文件位于同一命名空间、同一项目中。但是我在mainwindow.Show();说那句话时遇到了一个错误

Error 1 'PluginManager.PluginManagerView' does not contain a definition for 'Show' and no extension method 'Show' accepting a first argument of type 'PluginManager.PluginManagerView' could be found (are you missing a using directive or an assembly reference?) Blah procedyre .cs  30  24  PluginManager

谁能告诉我问题是什么?为什么它不会为 MainWindow 的先前用法抛出错误?

using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Windows;
using System.ComponentModel.Composition.Hosting;

namespace PluginManager
{
    public class PublicProcedures : Application
    {
        public static void ShowPlugins()
        {
            var mainwindow = new PluginManagerView();

            //An aggregate catalog that combines multiple catalogs

            var catalog = new AggregateCatalog();
            //Adds all the parts found in the same assembly as the Program class
            //catalog.Catalogs.Add(new AssemblyCatalog(this.GetType().Assembly));
            catalog.Catalogs.Add(new DirectoryCatalog("./Plugins/"));

            var container = new CompositionContainer(catalog);

            var modules = container.GetExportedValues<IPlugin>();


            mainwindow.DataContext = modules;
            mainwindow.Show();
        }

    }


}
4

2 回答 2

1

为了调用Window.Show(我猜这是你想要做的), PluginManagerView 必须从类Window派生,它的 XAML 必须看起来像这样:

<Window x:Class="PluginManager.PluginManagerView" ...>
    ...
</Window>
于 2012-05-16T07:38:27.783 回答
0

它抱怨不管PluginManagerView是什么,它都没有一个Show方法(你试图在一个PluginManagerView名为“mainwindow”的实例中调用它)。

于 2012-05-15T22:58:57.230 回答