IsEmpty is solved from CollectionView.IsEmpty
as?
I applied high tracing to snap
Visibility="{Binding ElementName=entry, PresentationTraceSources.TraceLevel=High, Path=Text.IsEmpty, Converter={StaticResource BooleanToVisibilityConverter}}"
and here is the result
System.Windows.Data Warning: 56 : Created BindingExpression (hash=40147308) for Binding (hash=39658150) System.Windows.Data Warning: 58 : Path: 'Text.IsEmpty' System.Windows.Data Warning: 60 : BindingExpression (hash=40147308): Default mode resolved to OneWay System.Windows.Data Warning: 61 : BindingExpression (hash=40147308): Default update trigger resolved to PropertyChanged System.Windows.Data Warning: 62 : BindingExpression (hash=40147308): Attach to System.Windows.Controls.TextBlock.Visibility (hash=2939094) System.Windows.Data Warning: 67 : BindingExpression (hash=40147308): Resolving source System.Windows.Data Warning: 70 : BindingExpression (hash=40147308): Found data context element: <null> (OK) System.Windows.Data Warning: 74 : Lookup name entry: queried TextBlock (hash=2939094) System.Windows.Data Warning: 65 : BindingExpression (hash=40147308): Resolve source deferred System.Windows.Data Warning: 67 : BindingExpression (hash=40147308): Resolving source System.Windows.Data Warning: 70 : BindingExpression (hash=40147308): Found data context element: <null> (OK) System.Windows.Data Warning: 74 : Lookup name entry: queried TextBlock (hash=2939094) System.Windows.Data Warning: 78 : BindingExpression (hash=40147308): Activate with root item TextBox (hash=46768536) System.Windows.Data Warning: 108 : BindingExpression (hash=40147308): At level 0 - for TextBox.Text found accessor DependencyProperty(Text) System.Windows.Data Warning: 104 : BindingExpression (hash=40147308): Replace item at level 0 with TextBox (hash=46768536), using accessor DependencyProperty(Text) System.Windows.Data Warning: 101 : BindingExpression (hash=40147308): GetValue at level 0 from TextBox (hash=46768536) using DependencyProperty(Text): '' System.Windows.Data Warning: 108 : BindingExpression (hash=40147308): At level 1 - for String.IsEmpty found accessor <null> System.Windows.Data Warning: 108 : BindingExpression (hash=40147308): At level 1 - for EnumerableCollectionView.IsEmpty found accessor RuntimePropertyInfo(IsEmpty) System.Windows.Data Warning: 104 : BindingExpression (hash=40147308): Replace item at level 1 with EnumerableCollectionView (hash=40847598), using accessor RuntimePropertyInfo(IsEmpty) System.Windows.Data Warning: 101 : BindingExpression (hash=40147308): GetValue at level 1 from EnumerableCollectionView (hash=40847598) using RuntimePropertyInfo(IsEmpty): 'True' System.Windows.Data Warning: 80 : BindingExpression (hash=40147308): TransferValue - got raw value 'True' System.Windows.Data Warning: 82 : BindingExpression (hash=40147308): TransferValue - user converter produced 'Visible' System.Windows.Data Warning: 89 : BindingExpression (hash=40147308): TransferValue - using final value 'Visible'
interesting lines from the above trace
System.Windows.Data Warning: 108 : BindingExpression (hash=40147308): At level 1 - for String.IsEmpty found accessor <null> System.Windows.Data Warning: 108 : BindingExpression (hash=40147308): At level 1 - for EnumerableCollectionView.IsEmpty found accessor RuntimePropertyInfo(IsEmpty)
so you can see that really the String type does not have IsEmpty
for String.IsEmpty found accessor <null>
but the view for the row is an EnumerableCollectionView that has IsEmpty , and a binding resolved to the same
for EnumerableCollectionView.IsEmpty found accessor RuntimePropertyInfo(IsEmpty)
pushpraj
source share