DependencyProperty回调的方法不叫
-
06-07-2019 - |
题
我创建一个用户控件(TableWithFilter.xaml)与依赖性财产的(来源)。用户控件是一个表格有一个来源的财产的不同的项目。我所创建的反馈组源的财产通过XAML结合。到目前为止一切顺利。
但是,如果价值的依赖性更改,该定义的回调的方法是不叫。因此,我无法更新项目在我的桌上。有任何人的想法为什么回调的方法是不叫什么?
在这里的定义是我的财产的类"TableWithFilter":
Public Shared ReadOnly SourceProperty As DependencyProperty = _
DependencyProperty.Register("Source", GetType(List(Of TableViewItem)), GetType(TableWithFilter), _
New FrameworkPropertyMetadata(Nothing, New PropertyChangedCallback(AddressOf TableWithFilter.ChangeSource)))
和回调的方法:
Private Shared Sub ChangeSource(ByVal source As DependencyObject, ByVal e As DependencyPropertyChangedEventArgs)
Dim table As TableWithFilter = source
table.Source = e.NewValue
End Sub
和这里的键
<Border Grid.Row="1" Grid.Column="1" BorderBrush="{StaticResource ElementBorder}" BorderThickness="1">
<local:TableWithFilter x:Name="SearchResultTable" Source="{Binding Source={StaticResource contentFacade}, Path=ContentList}" />
</Border>
如果属性"ContentList"改变我expet,"ChangeSource"方法在TableWithFilder类被称为。但这不是这种情况。之后我改变了ContentList属性,我提出以下活动:
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs("ContentList"))
谢谢任何的想法。
解决方案
之间是有区别的整个财产改变的(即一个新的参照的集合被指定的)对列表的内容本身的变化。收藏有他们自己的改变通知所谓的接口 INotifyCollectionChanged
.所以你需要做的是听酒店的变化你现在已经和里面的那个,用挂钩 INotifyCollectionChanged
事件自己在新收集的实例,然后应对那些。
不隶属于 StackOverflow