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