使用PRISM时,使用unity来连接事物的正常方法是定义一个接口并使用此接口注册一个实现。现在,我对视图有疑问。场景很简单:
假设自定义视频控件允许设置播放命令。该控件由简单的接口“IPlayControlView”定义。显而易见的问题是,当我解析此控件并尝试将其添加到StackPanel
时,它不起作用,因为我有一个IPlayControl
,而不是UIElement
。
我可以将其投放到UIElement
,因为我知道它是UIElement
。但有没有更好的方法,比如
public interface IPlayControlView : UIElement
这不起作用,但也许其他一些事情会起作用......
这是一个普遍的问题,如果我使用接口解析视图,我每次都会遇到这个问题。也许它不是它的方式,但我一直认为其中之一.... 好的,刚才有个主意。我将只使用一个属性UIElement扩展IPlayControl,并将其设置为对自身的引用。所以,没关系,在输入时回答问题: - )
如果有更好的方法,我总是喜欢学习新事物。也许是IUIElement?
克里斯
答案 0 :(得分:6)
你在倒数第二段描述的方式就是我这样做的方式。例如,如果我想将IShell
用作UIElement
(这很正常),我声明接口类似于:
public interface IShell
{
UIElement GetView();
}
然后在我的实施中:
public partial class MyMainShell : UserControl, IShell
{
public UIElement GetView()
{
return this;
}
}