C# 值转换器仅触发一次

C# 值转换器仅触发一次,c#,wpf,ivalueconverter,C#,Wpf,Ivalueconverter,我有一个WPF值转换器来转换加载xaml视图时触发的items控件的项 我的问题是,当itemssource集合引发notify属性更改事件时,值转换器似乎没有启动 这是我的xaml: <ItemsControl ItemsSource="{Binding StackupViewModel.Layers}"> <ItemsControl.ItemTemplate> <DataTemplate> <Conte

我有一个WPF值转换器来转换加载xaml视图时触发的items控件的项

我的问题是,当itemssource集合引发notify属性更改事件时,值转换器似乎没有启动

这是我的xaml:

<ItemsControl ItemsSource="{Binding StackupViewModel.Layers}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <ContentPresenter>
                <ContentPresenter.Content>
                    <MultiBinding Converter="{StaticResource LayerToRectangle}">
                        <Binding />
                        <Binding ElementName="rgv"/>
                    </MultiBinding>
                </ContentPresenter.Content>
            </ContentPresenter>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
我在xaml中添加了一个按钮,在Layers observable集合上触发notifypropertychanged,如下所示:

<Button Name="btnDraw" Command="{Binding StackupViewModel.ScrollCommand}" />

private void ScrollCommandHandler(object offset)
{
    RaisePropertyChanged(() => this.Layers);

}

私有无效ScrollCommandHandler(对象偏移量)
{
RaisePropertyChanged(()=>this.Layers);
}

有人能告诉我为什么在单击按钮时转换器没有被触发吗?

第一个绑定的上下文只是一个单独的
对象,而不是
父集合,因此当您调用
ScrollCommandHandler
方法

我认为,因为itemscontrol绑定到Layers observable集合,而Rising propertychanged会导致itemscontrol刷新其绑定,从而再次将转换器应用到集合?您能否建议单击按钮时如何重新填充转换器?我觉得这更像是一种黑客行为,但您可以添加另一个“侦听”实际
集合的绑定,例如:
<Button Name="btnDraw" Command="{Binding StackupViewModel.ScrollCommand}" />

private void ScrollCommandHandler(object offset)
{
    RaisePropertyChanged(() => this.Layers);

}