【问题标题】:Resolving interface as UIElement (Unity, PRISM, C#)将界面解析为 UIElement(Unity、PRISM、C#)
【发布时间】:2009-10-07 20:10:34
【问题描述】:

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

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

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

public interface IPlayControlView : UIElement

这行不通,但也许其他一些东西可以解决问题......

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

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

克里斯

【问题讨论】:

    标签: c# interface views unity-container uielement


    【解决方案1】:

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

    public interface IShell
    {
        UIElement GetView();
    }
    

    然后在我的实现中:

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

    【讨论】:

      猜你喜欢
      • 2011-12-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多