使用另一个元素';s MultiBinding中的ItemsSource属性

本文关键字:MultiBinding 中的 ItemsSource 属性 另一个 元素 | 更新日期: 2023-09-27 18:23:46

我想使用某个特定元素的ItemsSource属性作为另一个元素MultiBinding中的绑定之一。到目前为止,我拥有的是:

<Label>
  <Label.Content>
    <MultiBinding Converter="{converters:myMultiValueConverter}">
      <Binding Path="PageIndex" />
      <Binding ElementName="anotherElement" Path="ItemsSource"/>
    </MultiBinding>
  </Label.Content> 
</Label>

这只起作用一次(当最初设置ItemsSource时),但当绑定到原始元素的ItemsSource属性的ObservableCollection添加或删除了项时,绑定无法更新。这种捆绑可能吗?

使用另一个元素';s MultiBinding中的ItemsSource属性

添加这样的伪绑定(-您不需要值-)来强制重新评估MultiBinding

<Binding ElementName="anotherElement" Path="ItemsSource.Count"/>

编辑:刚刚注意到一个缺陷:如果您移动了不会注册的项目(如果这不会更改其间的Count属性),那么这可能与您有关。在这种情况下,您可以绑定到自己的虚拟对象,以便在CollectionChanged上触发更改通知(但无论如何都不是那么干净)。

您可能需要考虑HighCore的建议,一个只返回计算值的get属性通常非常方便,您可以在它所依赖的所有位置手动激发PropertyChanged