Diskuze: windows phone 8 - Binding v XAMLu
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 6 zpráv z 6.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Test znalostí C# .NET online, jsme si ověřili nabyté zkušenosti z kurzu.


Ihned několik věcí zvláštně
Toť rychlý info. Ptej se čemu přesně nerozumíš 


díky, díky, ale stále nerozumím jak nastavit ten ListBox
Nemůžu ti tu popsat celý systém DataBindingu. Takže to vezmu bodově
. Zaprvé se koukni na pattern
MVVM (Model-View-ModelView).
Každá property, kteoru chceš bindovat musí být public s přístupem pro
GET i SET. V Bindingu pomocí Mode lze nastavit chování
OneTime - pouze při první incializaci, měna property se neprojeví v
komponentě
OneWay - pouze z Modelu do View
TwoWay - oboustranná závislost, tedy změna v Modelu se projeví ve View,
naopak změna ve View se projeví do Modelu. Typicky například TextBox
Třídy kde chceš zajistit Binding musí implementovat rozhraní INotifyPropertyChanged. Pokud chceš více, info řekni si.
K tvému problému konkrétně. DataTemplate je pro tvůj případ
zbytečný. DataTemplate slouží pro určení "vzhledu" jednotlivých Itemů. K
problému. Mám ObservableCollection<int>. Ne List !
ObservableCollection ti zajistí správný chod Bindingu (není potřeba u
kolekce tedy dále řešit PropertyChanged)
Ve třídě MainPage (pro demonstraci stačí, obecně velmi špatný návrh !
)
public ObservableCollection<int> Numbers { get; set; }
a konstrutktor
// Celé Page řeknu že veškerá data jsou dostupná pouze v této třídě
// this.DataContext = this;
//nebo řeknu že DataContext pro ListBox je tato třída.
this.Numbers = new ObservableCollection<int>();
this.DataContext = this;
for (int i = 0; i < 11; i++)
{
Numbers.Add(i);
}
Kolekci naplním od 0 do 10 (žádná věda). Důležitý je řádek DataContext. každá property )nebo téměř každá) má vlastnost DataContext. Tím říkáš odkud dané data můžeš čerpat. Takže našemu oknu jsme nastavil DataContext na třídu okna. Tím jsem řekl že veškerá data bude brát z této třídy a případně dalších instancí ve třídě.
No a odpovídající XAML
<ListBox x:Name="listBox" ItemsSource="{Binding Numbers}" />
Zvláštní, že jsem tu zatím prakticky nikoho neviděl u Bindingu používat Path... já ji používám skoro vždy.
Př.
<TextBox Text="{Binding Path=Author, Mode=TwoWay, UpdateSourceTrigger=LostFocus}"
Grid.Column="1" Grid.Row="2" FontSize="16" />
A somzřejmě u Gridu nastavím source.
DataContext="{Binding ElementName=diaryData, Path=SelectedItem, Mode=OneWay}"

Jasně
ale ne vždy Path
lze použít. Opět v tomto příkladě to také nelze použít.
Zobrazeno 6 zpráv z 6.