我正在尝试编写一个通用控件,在其中我可以INotifyPropertyChanged
使用转换器传递不同的数据模型(全部实现)。数据在控件中传递没有问题,并且显示正确(其中一些还使用IMultivalueConverts
,它工作完美)。虽然修改了数据,但是IMultiValueConverter
并没有调用MainControl的。
通用控件应该只显示根据 ObservableCollection 中的坐标计算出的矩形。
我将 DebugConverters 放在所有绑定上,除了顶部的 ConvertBack 之外,所有内容似乎都已更新。还调用 ListBox 中的 SourceUpdate。
我用不同的 NotifyOn...Updated、Mode 和 UpdateSourceTrigger 尝试了这个转换器,我总是看到控件中的值发生变化,但从未看到主控件的 ConvertBack。
使用的部分数据模板(更新正确完成),所有 DegreeTo... 转换器都以两种方式调用
<DataTemplate x:Key="RectangleWithLabel">
<Canvas IsHitTestVisible="True">
<Rectangle x:Name="RectangleROI" MouseLeftButtonDown="myCanvas_PreviewMouseLeftButtonDown" >
<!--
<Rectangle.Visibility>
<Binding Path="ROI" Converter="{StaticResource NullToVisibilityConverter}"/>
</Rectangle.Visibility>
-->
<Canvas.Left>
<MultiBinding Converter="{StaticResource DegreeToScreenPixelConverterH}" Mode="TwoWay" NotifyOnSourceUpdated="True" NotifyOnTargetUpdated="True" UpdateSourceTrigger="PropertyChanged" >
<Binding Path="ROI.Begin.PosH" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged" NotifyOnSourceUpdated="True" NotifyOnTargetUpdated="True" />
<Binding Path="DataContext.UsedCoordinateSystem" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type UserControl}}" NotifyOnSourceUpdated="True" Mode="TwoWay" NotifyOnTargetUpdated="True" UpdateSourceTrigger="PropertyChanged" />
</MultiBinding>
</Canvas.Left>
<Canvas.Top>
沧海一幻觉
相关分类