2013-05-15 15 views
22

mam wiążącą gdzie Path jest ustawiony na Path=Item.Tag.caption, ale muszę oddać Item do IEDGE pierwszy więc mogę uzyskać dostęp do Tag obiekt. Czy istnieje sposób, aby to osiągnąć?WPF Oprawa: Casting w wiązaniu ścieżkę

+0

Robisz to w kodzie lub w XAML? –

+0

Muszę to zrobić w Xaml – Aminouvic

+0

@Aminouvic Jeśli 'Pozycja' implementuje' IEDGE' i 'Tag' jest właściwością, powinno działać tak, jak to opublikowałeś. Jaki błąd dostałeś? – DHN

Odpowiedz

46

Rozwiązaniem dla tego problemu, w końcu, jest użycie następującej składni:

Path=Item.(myNameSpace:IEdge.Tag).caption 

Powyższy kod cast Item do rodzaju IEdge w celu uzyskania dostępu do własności Tag.

W przypadku wielokrotnego zagnieżdżone rzuca globalny wzorzec jest:

Path=Obj1.(ns1:TypeObj1.Obj2).(ns2:TypeObj2.Obj3)...(nsN:TypeObjN.BindedProp) 
+0

To nie działa dla mnie. Całe wyrażenie w nawiasach jest traktowane jak własność. Gdzie znalazłeś informacje na ten temat? Przeszukałem cały Internet i nigdy nie znalazłem nic takiego poza twoją odpowiedzią tutaj ... – Libor

+1

Dobra, udało mi się, ale nadal - gdzie znalazłeś tę informację? Wydaje się, że niektóre WPF under-the-hood nieudokumentowanej czarnej magii ... – Libor

+2

@Libor: Właściwie znalazłem rozwiązanie na msdn [PropertyPath XAML Składnia] (http://msdn.microsoft.com/en-us/library/ms742451 .aspx) przy użyciu ** kwalifikacja częściowa nieruchomości ** patrz sekcja ** Pojedyncza właściwość, załączona lub w inny sposób zakwalifikowana jako typ ** – Aminouvic