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