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.
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
2011. december 21., szerda
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.
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
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
Feliratkozás:
Bejegyzések (Atom)