2

使用 PRISM 时,将事物与 unity 连接的正常方法是定义一个接口并使用该接口注册一个实现。现在,我对视图有疑问。场景很简单:

假设一个允许设置播放命令的自定义视频控件。这个控件由一个简单的接口“IPlayControlView”定义。明显的问题是,当我解决此控件并尝试将其添加到 aStackPanel时,它不起作用,因为我有一个IPlayControl,而不是UIElement.

我可以将它转换为UIElement,因为我知道它是一个UIElement. 但是有没有更好的方法,比如

public interface IPlayControlView : UIElement

这不起作用,但也许其他一些东西会起作用......

这是一个普遍的问题,如果我使用接口解析视图,我每次都会遇到这个问题。也许它不是它的完成方式,但我一直认为其中之一....好吧,只是有了一个想法。我将只使用一个属性 UIElement 扩展 IPlayControl 并将其设置为对其自身的引用。所以,没关系,打字时回答的问题:-)

如果有更好的方法,我总是喜欢学习新事物。也许是 IUIElement?

克里斯

4

1 回答 1

6

你在倒数第二段中描述的方式就是我这样做的方式。例如,如果我想使用 myIShell作为UIElement(这很正常),我将接口声明为:

public interface IShell
{
    UIElement GetView();
}

然后在我的实现中:

public partial class MyMainShell : UserControl, IShell
{
    public UIElement GetView()
    {
        return this;
    }
}
于 2009-10-07T20:23:21.480 回答