绑定到 object 树中的 non-existing/inheritance 节点
Bind to non-existing/inheritance node in object tree
我目前面临一个我无法解决的问题...所以我来到这里希望你们中的一个能看到我目前正在寻求的解决方案...
情况
我从支持继承的 "custom" 文件格式中生成了一个 object 树(parent 可以在当前或上层范围内的任何地方)
这不是 C# 或伪代码:)
class foo
{
a = "foobar";
};
class container
{
class bar
{
b = "foobar";
};
class fooExtension : foo
{
//contains 'a' with value "foobar"
b = "foo";
};
};
(对于那些想知道的人,是的,这是来自游戏 ArmA)
现在结果如下 "access keys"
/foo
/foo/as
/container
/container/bar
/container/bar/b
/container/fooExtension/b
加上仅因为 fooExtension
具有 foo
作为 parent
而存在的派生密钥 /container/fooExtension/a
object 树可以使用以下方式浏览:
GetKey(string, AccessTypeEnum)
提供对单个关键目标的最大控制
[int]
获得单身 child 节点
[int, int]
获取 child 个节点的范围
[string]
使用 GetKey 检查给定 string-key 的 object 树
代表每个节点实现INotifyPropertyChanged
、INotifyPropertyChanging
和IEnumerable<ConfigField>
的class
事件没有使树向上冒泡
问题
我想绑定到 /container/fooExtension/a
或 /Some/Not/Existing/Key
而不创建节点(因为那样会破坏继承)并且不在节点周围创建整个观察者 class树(因为这是正确维护和实施的噩梦)
目前的想法
这个问题现在困扰了我整个周末...我想出的解决方案都是垃圾(创建一个新的 Binding
class 来订阅正确的 parents ) 或实施的噩梦(观察者 class、"reference" object 观察最高可用密钥,...)
终于
有没有可能有人在这附近的某个地方施展了魔术?
感谢您的宝贵时间
通过使用 hacky 而不是很好的开销方式解决了...
事件现在将冒泡到对象树根...这实际上是不正确的...但解决了问题...
那+一个特殊的转换器,需要 em ...
如果有人有更好的解决方案,请回答
我目前面临一个我无法解决的问题...所以我来到这里希望你们中的一个能看到我目前正在寻求的解决方案...
情况
我从支持继承的 "custom" 文件格式中生成了一个 object 树(parent 可以在当前或上层范围内的任何地方)
这不是 C# 或伪代码:)
class foo
{
a = "foobar";
};
class container
{
class bar
{
b = "foobar";
};
class fooExtension : foo
{
//contains 'a' with value "foobar"
b = "foo";
};
};
(对于那些想知道的人,是的,这是来自游戏 ArmA)
现在结果如下 "access keys"
/foo
/foo/as
/container
/container/bar
/container/bar/b
/container/fooExtension/b
加上仅因为 fooExtension
具有 foo
作为 parent
/container/fooExtension/a
object 树可以使用以下方式浏览:
GetKey(string, AccessTypeEnum)
提供对单个关键目标的最大控制[int]
获得单身 child 节点[int, int]
获取 child 个节点的范围[string]
使用 GetKey 检查给定 string-key 的 object 树
代表每个节点实现INotifyPropertyChanged
、INotifyPropertyChanging
和IEnumerable<ConfigField>
事件没有使树向上冒泡
问题
我想绑定到 /container/fooExtension/a
或 /Some/Not/Existing/Key
而不创建节点(因为那样会破坏继承)并且不在节点周围创建整个观察者 class树(因为这是正确维护和实施的噩梦)
目前的想法
这个问题现在困扰了我整个周末...我想出的解决方案都是垃圾(创建一个新的 Binding
class 来订阅正确的 parents ) 或实施的噩梦(观察者 class、"reference" object 观察最高可用密钥,...)
终于
有没有可能有人在这附近的某个地方施展了魔术?
感谢您的宝贵时间
通过使用 hacky 而不是很好的开销方式解决了...
事件现在将冒泡到对象树根...这实际上是不正确的...但解决了问题... 那+一个特殊的转换器,需要 em ...
如果有人有更好的解决方案,请回答