我有一个带有一些多重绑定的按钮,它附加了一个命令:
<Button Content="remove" HorizontalAlignment="Right" VerticalAlignment="Top" Cursor="Hand" Focusable="False">
<Button.Command>
<Binding Path="DataContext.DeleteColumnCommand" ElementName="treeView" />
</Button.Command>
<Button.CommandParameter>
<MultiBinding Converter="{StaticResource midConverter}">
<Binding Path="Text" ElementName="tableName"/>
<Binding Path="Name" />
</MultiBinding>
</Button.CommandParameter>
</Button>
我看到当我在转换器中放置一个断点时,每个值都被设置并且看起来它正在工作。
但是,当实际调用该命令时,我收到一个填充了 null 的数组作为参数 !
我想 WPF 重用并改变了我在转换器中看到的数组,这并不无意义,因为这是我没有分配的引用类型,并且在 WPF 的上下文中最大性能是非常需要的。
我的问题是:什么最能概括 WPF 中围绕突变的指导/保证?
有这方面的规则吗?
PS:我在这里看到其他人有同样的问题,显然不明白起源。
PPS:我的问题可能不够清楚,但很自然地,必须在堆上分配一个新的结构、列表、数组等,因为你得到的那个可能会被重用。问题是:从这个特别的例子来看,在这种情况下 WPF 的规则是什么?