![]() |
1
2
好消息是,我知道为什么
这个控件本质上是一个强类型的组合框,它具有一系列附加功能,这些功能是由于它知道其中包含的项的类型而成为可能的。这个
这就是发生的事情。这是附加值转换器时的调试输出(数字是控件的哈希代码,因为在程序初始化时,我得到了一组同时绘制的哈希代码):
这是预期的行为。这个
但是如果没有值转换器,我们得到:
在这里,
这就是问题的根源。我愚蠢地假设绑定更新其目标的顺序与在XAML中声明的顺序相同。(我将绑定表示为元素而不是属性的一个原因是,XML文档中元素的顺序是确定的,而属性的顺序不是。我并没有想到这一点。)显然情况并非如此。 我还假设,也许有点愚蠢,绑定更新其目标的顺序并不依赖于它们是否附加了值转换器。是的。我想知道它还依赖什么。
谢天谢地,我有办法解决这个问题。自从我
编辑 属性声明如下所示:
|
![]() |
2
0
也尝试实现convertback函数,您使用的是双向绑定,因此问题可能是“xaml”将忽略该异常,但当您进入调试模式时,可能会停止“send value back”操作? |
![]() |
3
0
嗯…很奇怪。我在使用多个转换器处理多绑定时看到过类似的行为,但在简单绑定上没有。出于好奇,你如何在控制中定义你的DPS?(包括回调、元数据选项等) 一些要尝试的东西(移除转换器挂钩后):
|
![]() |
4
0
设置selectedcode的作用是什么?可以发布属性更改处理程序的代码吗? 您已经建议调试显示属性被设置为正确的值,所以最明显的建议是提供预期行为的代码是不正确的。 |