Where is the IsEmpty link / element in this XAML code?

I can’t understand where IsEmpty is from in this piece of code ( Path=Text.IsEmpty ) (about the Watermark TextBox):

 <Grid Grid.Row="0" Background="{StaticResource brushWatermarkBackground}" Style="{StaticResource EntryFieldStyle}" > <TextBlock Margin="5,2" Text="Type to search ..." Foreground="Gray" Visibility="{Binding ElementName=entry, Path=Text.IsEmpty, Converter={StaticResource BooleanToVisibilityConverter}}"/> <TextBox Name="entry" Background="Transparent"/> </Grid> 

You can see that the string does not have the IsEmpty property. A DependencyProperty also has no IsEmpty member. I even tried searching for IsEmpty in the Object Browser window, but there was no relevant result explaining the code.

Could you explain to me the IsEmpty link here? (Any link link about this is wonderful).

Thanks!

+8
c # wpf xaml
source share
1 answer

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) 
+9
source share

All Articles