私はいくつかの独立したライブラリを持っており、いくつかはメインビューをエクスポートしています。TabControlを備えたシェルがあり、すべてのビューを別々のタブにロードしたいと考えています。このプラグインからすべてのタイプを登録できますが、このすべてのメインビューを表示する方法がわかりません。たとえば、5つのプラグインから5つのビューを登録しましたが、それをShellViewに渡すにはどうすればよいですか?
質問する
164 次
1 に答える
2
インターフェースがある場合
public interface ITabView {
}
すべてのビューが実装する
public class MyFirstView : UserControl, ITabView
{
....
}
そしてあなたはそれらを次のようなもので登録します
builder.RegisterType<MyFirstView>().As<ITabView>();
builder.RegisterType<MySecondView>().As<ITabView>();
次に、ジェネリックIEnumerableをShellViewのコンストラクターに挿入することで、それらすべてにアクセスできます(異なるアセンブリに登録されている場合でも)。
public ShellView(IEnumerable<ITabView> tabViews)
{
foreach (var view in tabViews)
{
... Create a tab for each view, make the tab the parent of the view
... and add the tab to the TabControl
}
}
于 2012-09-17T19:56:52.483 に答える