繁体   English   中英

将界面解析为UIElement(Unity,PRISM,C#)

[英]Resolving interface as UIElement (Unity, PRISM, C#)

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

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

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

public interface IPlayControlView : UIElement

这是行不通的,但也许其他方法可以解决问题。

这是一个普遍的问题,如果我使用接口解析视图,则每次都会遇到此问题。 也许不是这样做的方法,但我一直以为...之一。好吧,刚有了一个主意。 我将仅使用一个属性UIElement扩展IPlayControl并将其设置为对自身的引用。 因此,没关系,键入时回答了问题:-)

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

克里斯

您在倒数第二段中所描述的方式就是我这样做的方式。 例如,如果我想将IShell用作UIElement (这很正常),则可以声明如下接口:

public interface IShell
{
    UIElement GetView();
}

然后在我的实现中:

public partial class MyMainShell : UserControl, IShell
{
    public UIElement GetView()
    {
        return this;
    }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM