Звязванне з пераўтваральнікам для кантролю ў DataTemplate ў выглядзе ListBox

Я спрабую перадаць TextBlock ў канвэртар праз звязванне


    
        
            
            
            
        
        
            
                
                    
                        
                            
                                
                                
                            
                        
                    

                    

                
            
        
    

Звязванне з DataContext (Binding Path = "Data.Name") працуе, але звязванне (Binding ElementName = "tbUserName") не працуе, дзе tbUserName з'яўляецца TextBlock ў dbInfo DockPanel. Ці ёсць у вас якія-небудзь ідэі аб тым, як правільна звязаць гэта?

2

1 адказы

Магчыма, было два пытанні ...

<Моцны> NameScoping ...

ElementName звязванне мае строгія абмежаванні адносна NameScoping ...

<Р> У асноўным, калі выкарыстоўваецца ElementName   у прывязцы, то NameScope мэтавага аб'екта выкарыстоўваецца для пошуку   элемент з паказаным імем. Калі гэты элемент не мае   NameScope канкрэтна на ёй, метад FrameworkElement.FindScope   працягваецца да лагічнага дрэва і падае зваротна ў спадчыну   кантэкст, калі не існуе ніякага лагічнага з бацькоў. Аб'ём імя з'яўляецца аб'ектам у   якія ўсе названыя аб'екты былі зарэгістраваныя.

Так што ў вашым выпадку ў выглядзе элемента па-за кантэкстам ўсплывальнай падказкі трывае няўдачу. Зараз для гэтага, каб працаваць правільна, вам прыйдзецца пераадолець пабітую сферу, выкарыстоўваючы нешта накшталт Tag <код /> уласнасці ...

 
    
       
          
             
                 
                 

<Моцны> Бачнасць ToolTip

Замест таго, каб звязвацца з бачнасцю падказкі, вы маглі б выкарыстоўваць дадзеныя-трыгер з некалькімі абавязковымі для самога прамавугольніка і ўсталяваць падказку, што вы хочаце, на аснове значэння стану ...

    
       
       
     

    <!-- Rest of the code --->

    
        
    

Звярніце ўвагу на тое, што TooltipVisibilityConverter цяпер вяртае лагічнае значэнне для прастаты.

0
дададзена
@peter Дзякуй. Ён накіраваў мой у правільным кірунку. Ну {RelativeSource AncestorType = {х: Тып Прастакутнік}} , здаецца, не працуе ў гэтым кантэксце, так як прастакутнік, здаецца, не быць у падказцы мацярынскай ланцуга. Гэта, здаецца, трымае яго ў сваёй уласнасці PlacementTarget. Так што аб'яднанне з вялікім прапановай для ўстаноўкі TextBlock для ўласцівасці Tag + усталяваўшы Binding як вырашыць гэтую праблему. Я не магу выкарыстоўваць трыгер дадзеных падыход выклікае Элемент ActualWidth у TextBlack не быў устаноўлены ў гэты час.
дададзена аўтар Harshana, крыніца