A következő címkéjű bejegyzések mutatása: WPF. Összes bejegyzés megjelenítése
A következő címkéjű bejegyzések mutatása: WPF. Összes bejegyzés megjelenítése

2014. június 26., csütörtök

XAML Binding: Path és ElementName

Ha WPF XAML-ben valami másik objektum tulajdonságához szeretnénk bindolni, akkor ezt könnyedén megtehetjük a ElementName paraméter beállításával.
FONTOS, hogy ebben az esetben a hivatkozott property útvonalát is módosítani kell, elé kell tenni, hogy DataContext. Ekkor fogja megtalálni a célobjektum általunk keresett property-jét.

Azaz például:
{Binding Path=DataContext.DesiredProperty, ElementName=target}

Amennyiben megfeledkezünk arról, hogy az ElementName használatával a célobjektum DataContext property-jében kell keresnünk a saját modellünket, akkor komoly problémát fog okozni az, hogy semmilyen hibát nem kapunk majd, csak nem fog működni. Lefordul és fut hiba nélkül, pusztán nem működik.

2011. december 21., szerda

WPF jövője és a tudásunk értéke. :)

http://devcomponents.com/blog/?p=1061

2011. január 10., hétfő

FallbackValue binding-nál WPF-ben

System.Windows.Data Error: 11 : Fallback value 'false' (type 'String') cannot be converted for use in 'Visibility' (type 'Visibility'). BindingExpression:Path=IsNewsItemFolderMode; DataItem=null; target element is 'ToolbarButton' (Name=''); target property is 'Visibility' (type 'Visibility') FormatException:'System.FormatException: false is not a valid value for Visibility. ---> System.ArgumentException: Requested value 'false' was not found.

Ahogy a FallbackValue definíciójából kiderül (Gets or sets the value to use when the binding is unable to return a value, http://msdn.microsoft.com/en-us/library/system.windows.data.bindingbase.fallbackvalue.aspx) ez az az érték, amit akkor használ az alkalmazás, ha nem sikerül a binding (hogy mi az, ami sikeresnek számít, ld. az előző linken). Szóval az itt megadott false-t nem a konverter kapja meg, ahogy a kód írója talán feltételezte, hanem közvetlenül a binding célja. Így false helyett pl. Visible, Collapsed vagy Hidden szerepelhetne itt.

2010. július 14., szerda

WPF főablak bezáráskor nincs messageloop

WPF-ben is megvan az a hiba, hogy ha a főablakot lezárod, akkor a messageloop "megszakad" (igazából nincs). Ezért, ha lezárod a fő ablakot, akkor előtte állítsd át a Application.Current.MainWindow értékét az új ablakra, amit fel szeretnél dobni a usernek pl. egy ShowDialog-gal.

2010. február 20., szombat

DependencyProperty

Két jó link megérteni, hogy miért is kellett ez az egész:
Első az áttekintés, hogy derengjen:
http://msdn.microsoft.com/en-us/library/ms752914.aspx

Aztán tisztul a kép:
http://www.switchonthecode.com/tutorials/wpf-tutorial-introduction-to-dependency-properties