我有一个名为的界面 IEditor
public interface IEditor<T>
where T: SpecialObject
Run Code Online (Sandbox Code Playgroud)
SpecialObject 是一个抽象类.
这是我的问题:
我有一个继承自的类SpecialObject和一个实现此IEditor接口的视图
public class View : IEditor<Person>
Run Code Online (Sandbox Code Playgroud)
现在,我必须检查View是否实现 IEditor<SpecialObject>
Boolean isEditor = View is IEditor<SpecialObject>
Run Code Online (Sandbox Code Playgroud)
但IEditor总是假的
有没有可能检查View是否IEditor<SpecialObject>?
我有一个方法,在引发结束事件时调用.传递给此方法的视图可以实现IEditor,但它们也可以实现另一个接口.在示例IView中
void Closing(object sender, MyEventArgs e)
{
if(e.Item is IView)
{
// DO some closing tasks
if(e.Item is IEditor<SpecialObject>) // always false
{
// Do some special tasks
var editor = e.Item as IEditor<SpecialObject>;
var storedEditObect = editor.StoredObject;
// more tasks
}
} else …Run Code Online (Sandbox Code Playgroud) 我有两个地区.导航区域和主要区域.
我的导航区域包含两个调用RequestNavigate方法的按钮.第一个按钮加载没有任何参数的视图
this.tRegionManager.RequestNavigate(RegionNames.MainRegion, ViewNames.VInfoMainViewUri);
Run Code Online (Sandbox Code Playgroud)
第二个按钮应该使用一些参数加载相同的视图
this.tRegionManager.RequestNavigate(RegionNames.MainRegion, new Uri(ViewNames.VInfoMainViewUri.OriginalString + "" + query.ToString(), UriKind.Relative));
Run Code Online (Sandbox Code Playgroud)
如果没有加载视图,这可以正常工作.如果加载了任何视图,则单击任何按钮都不会导致任何操作.
我试图从我的区域中删除每个活动视图,但这会导致错误
IViewsCollection col = tRegionManager.Regions[args.RegionName].Views;
foreach (var obj in col)
{
tRegionManager.Regions[args.RegionName].Remove(obj);
}
Run Code Online (Sandbox Code Playgroud)
该区域不包含指定的视图.参数名称:view
我该如何解决这个问题呢?