Diskuze: Windows Phone Silverlight Binding

C# .NET .NET (C# a Visual Basic) Windows Phone Silverlight Binding American English version English version

Avatar
Posix
Člen
Avatar
Posix:

Potřebuju zjistit Surname v DataTemplate... Je nějaké jednoduché řešení?

<Button DataContext="{Binding Person}">
    <Button.Template>
        <ControlTemplate>
            <TextBlock Text="{Binding Name}" />
            <MyCollection ItemsSource="{Binding BlaBla}">
                <MyCollection.ItemTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Surname /* ale toto nejde, protoze sa nedostane k Person přes BlaBla*/}" />
                    </DataTemplate>
                </MyCollection.ItemTemplate>
            </MyCollection>
        </ControlTemplate>
    </Button.Template>
</Button>
Odpovědět 20.8.2014 15:58
Proč to dělat jednoduše, když to jde složitě.
Avatar
sadlomaslox25:

muzes bliz upresnit co bys chtel (nechapu presne ty vztahy)? ale predpokladam ze to pujde vyresit pres

  1. RelativeSource (docela slozite)
  2. ElementName (me to dycky fungovalo a je to easy) ukazka je treba tu ( http://stackoverflow.com/…work-exactly )
 
Nahoru Odpovědět 20.8.2014 17:14
Avatar
Posix
Člen
Avatar
Odpovídá na sadlomaslox25
Posix:

No relative source TemplatedParent nejde, protože to je DataTemplate a ne ControlTemplate.. x:Nmae jsem taky už zkoušel a nejspíš zase kvůli DataTemplatu to nejde.. AncestorType v relative source není v silverlightu pro wp

Nahoru Odpovědět 20.8.2014 17:43
Proč to dělat jednoduše, když to jde složitě.
Avatar
sadlomaslox25:

tohle me de v SL5 (ted nemuzu skouset WP8, protoze nemam telefon)

<Button  DataContext="{Binding Person}">
            <Button.Template>
                <ControlTemplate>
                    <StackPanel>
                        <TextBlock Name="te" DataContext="{Binding}" Text="{Binding Name}" />
                        <ListBox  ItemsSource="{Binding Data}">
                            <ListBox.ItemTemplate>
                                <DataTemplate>
                                    <StackPanel>
                                        <TextBlock Text="{Binding DataContext.Surname, ElementName=te}"/>
                                        <TextBlock Text="{Binding}"/>
                                    </StackPanel>
                                </DataTemplate>
                            </ListBox.ItemTemplate>
                        </ListBox>
                    </StackPanel>
                </ControlTemplate>
            </Button.Template>
        </Button>
 
Nahoru Odpovědět  +1 20.8.2014 18:08
Avatar
Posix
Člen
Avatar
Odpovídá na sadlomaslox25
Posix:

Hmm tak me to jde taky, ale delal sem to taky tak.. Musim to jeste znovu pomalu projit a snad zjistim, kde sem udelal chybu

EDIT: tak už asi vím.. Já jsem nenastavoval DataCOntext tomu TextBlocku "te".. myslel jsem, že ho automaticky převezne..

Editováno 20.8.2014 18:28
Nahoru Odpovědět 20.8.2014 18:26
Proč to dělat jednoduše, když to jde složitě.
Avatar
sadlomaslox25:

ten datacontext se musi myslim davat explicitne nevim proc ale musi
(obcas nam to bindovani trochu zlobi :D)

 
Nahoru Odpovědět 20.8.2014 18:31
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 6 zpráv z 6.