Binding a TargetNullValue   zodpovězená otázka

VB.NET, WPF, Algoritmy

.NET 4, VS2010

Dobrý den,

mám listbox nabindovaný na nějakou kolekci objektů.

Do datacontextu textboxu dávám vybraný objekt z listboxu.

A textbox.text má nastevný bining na vlastnost v objektu.

Pokud nějaký objekt z kolekce v lb odeberu, do datacontextu textboxu se mi nastavuje nothing, a i když při vytváření spojení nastavím targetnullvalue na "" tak mi to vyhazuje chybu nullreferenceexceptions.

Př:


public sub new()
   lb.DataContext = Kolekce '(of mujObjekt)
   tb.SetBinding(textbox.TextProperty, new binding("Name") with {.TargetNullValue = ""})
end sub

private sub lb_selectionChanged(.......
   dim o as mujObjekt = directcast(lb.selectedItem, mujObjekt)
   me.setBinding(o)
end sub

private sub SetBinding(o as mujobjekt)
   tb.datacontext = o
end sub

TargetNullValue je podle msdn určeno, právě když do datacontext příjde nothing, mám tedy nastaveno "".

Po odstranění objektu z kolekce se textboxu předá nothing a vylítne mi chyba nullreferenceexceptions v metodě setBinding.

Věděl by někdo, jak se zbavit tohohle problému ?

nahlásit spamnahlásit spam 0 odpovědětodpovědět

Omlouvám se ale již jsem na to přišel. Jako téměř vždy po napsání dotazu.

Příklad popsaný výše by asi fungoval, moje situace je komplikovanější, a třída mujobjekt obsahovala ještě další objekt třeba mujobjekt2, když jsem předával datacontextu textboxu objekt ve formátu:

tb.datacontext = mujobjekt.mujobjekt2 tak null může být mujobjekt2 nikoly mujobjekt, pak se samozřejmě vyvolá vyjímka.

nahlásit spamnahlásit spam 1 / 1 odpovědětodpovědět
                       
Nadpis:
Antispam: Komu se občas házejí perly?
Příspěvek bude publikován pod identitou   anonym.
  • Administrátoři si vyhrazují právo komentáře upravovat či mazat bez udání důvodu.
    Mazány budou zejména komentáře obsahující vulgarity nebo porušující pravidla publikování.
  • Pokud nejste zaregistrováni, Vaše IP adresa bude zveřejněna. Pokud s tímto nesouhlasíte, příspěvek neodesílejte.

přihlásit pomocí externího účtu

přihlásit pomocí jména a hesla

Uživatel:  
Heslo:  

zapomenuté heslo

 

založit nový uživatelský účet

zaregistrujte se

 
zavřít

Nahlásit spam

Opravdu chcete tento příspěvek nahlásit pro porušování pravidel fóra?

Nahlásit Zrušit

Chyba

zavřít

feedback