小编pan*_*iMC的帖子

如何使用PRISM获取区域中的当前活动视图?

我知道我可以在以下地区获得所有已注册的观看次数:

var vs = mRegionManager.Regions[RegionNames.MainRegionStatic].Views.ToList();
Run Code Online (Sandbox Code Playgroud)

我可以看到有以下代码:

mRegionManager.Regions[RegionNames.MainRegionStatic].ActiveViews
Run Code Online (Sandbox Code Playgroud)

这是一个Active View列表,但我将我的区域附加到ContentControl,它始终只有一个ActiveView.我误解了或有没有办法获得单一的活动视图?

c# wpf prism mvvm

15
推荐指数
2
解决办法
7700
查看次数

如何在MVVM Light的SimpleIoc中注册实现多个接口的类?

假设我有几个接口和一个实现它们的类:

public interface ISomething1 { /* blablabla */ }
public interface ISomething2 { /* blablabla */ }
public class Service : ISomething1, ISomething2 { /* blablabla x 2 */ }
Run Code Online (Sandbox Code Playgroud)

我想在SimpleIoc中使用以下两个接口注册该类:

SimpleIoc.Default.Register<ISomething1, Service >();
SimpleIoc.Default.Register<ISomething2, Service >();
Run Code Online (Sandbox Code Playgroud)

但是这里的第二行抛出一个带有消息的ArgumentException:

已添加具有相同键的项目.

我以为这里的关键是界面本身,但显然情况并非如此.我的想法是使用显式键但是我想通过依赖注入来获取实例,其中IoC只能与无密钥注册表一起使用.

那么我怎么能在这里使用SimpleIoc而不改变任何接口或实现本身呢?

c# dependency-injection ioc-container mvvm-light

7
推荐指数
2
解决办法
1700
查看次数

标签 统计

c# ×2

dependency-injection ×1

ioc-container ×1

mvvm ×1

mvvm-light ×1

prism ×1

wpf ×1