Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/289.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 获取实例的父级_C#_Wpf_Reflection_Mvvm_Viewmodel - Fatal编程技术网

C# 获取实例的父级

C# 获取实例的父级,c#,wpf,reflection,mvvm,viewmodel,C#,Wpf,Reflection,Mvvm,Viewmodel,我得到了一个容器类,FieldContainer,这个容器类位于observeCollection中,它位于视图模型中。在字段容器中有几个字段。这些字段也位于可观察集合中 我们得到了这样一个结构: 视图模型 observedcollection FieldContainer observedcollection 字段 我的问题是:在我的字段中我想在运行时获取它的父ViewModel的实例。是否有可能通过反射来实现这一点?或者其他方式?为什么要这样做?这看起来有点像XY问题,如

我得到了一个容器类,
FieldContainer
,这个容器类位于
observeCollection
中,它位于
视图模型中。在
字段容器
中有几个
字段
。这些
字段
也位于
可观察集合

我们得到了这样一个结构:

  • 视图模型
    • observedcollection
      • FieldContainer
        • observedcollection
          • 字段

我的问题是:在我的
字段中
我想在运行时获取它的父
ViewModel
的实例。是否有可能通过反射来实现这一点?或者其他方式?

为什么要这样做?这看起来有点像XY问题,如果您需要在父VM上“设置”某些属性,消息传递(事件聚合)可能是一个更好的解决方案…如果
字段
需要了解
ViewModel
您做错了什么。EventAggregation是我试图解决的主要问题。我在
字段中触发事件
。。。但是如果有多个对象使用不同的
FieldContainer
,则每个对象都会触发事件。所以我认为比较项目来源是一个好方法idea@RobertNagel然后,您应该使用更专门的消息,或者每个
FieldContainer
都应该有自己的事件聚合器实例-生存期范围。