我想将特定元素的ItemsSource
属性用作另一个元素MultiBinding
中的绑定之一。这是我到目前为止所做的:
<Label>
<Label.Content>
<MultiBinding Converter="{converters:myMultiValueConverter}">
<Binding Path="PageIndex" />
<Binding ElementName="anotherElement" Path="ItemsSource"/>
</MultiBinding>
</Label.Content>
</Label>
这个工作一次(最初设置ItemsSource
时),但是当绑定到原始元素的ObservableCollection
属性的ItemsSource
添加或删除了项时,绑定无法更新。这种约束是否可能?
答案 0 :(得分:5)
添加虚拟绑定( - 您不需要值 - ),以强制重新评估MultiBinding
:
<Binding ElementName="anotherElement" Path="ItemsSource.Count"/>
编辑:注意到一个缺陷:如果您移动了不会注册的项目,如果这不会改变中间的Count
属性,那么这可能与您相关。在这种情况下,你可以绑定到你自己的假人,你可以在CollectionChanged
上发出更改通知(但在任何情况下都不是那么干净)。
您可能需要考虑HighCore的建议,即get
- 仅属性,它返回您在其所依赖的所有位置手动触发PropertyChanged
的计算值通常非常方便。