/ / Nullable int vlastnosť sa zmení na vnútorné pole vo verejnej triede, ktorá nezdedí z akejkoľvek triedy [closed] - c #, vlastnosti, nullable

Nullable int property sa zmení na vnútorné pole vo verejnej triede, ktorá nezdedí z akejkoľvek triedy [closed] - c #, vlastnosti, nullable

Trieda spoločnosti:

public class Company
{
public int CompanyId { get; set; }
public int? CountryId { get; set; }
}

A dostanem nasledujúci výstup v debugger:

Vlastníctvo sa mení na pole

Potrebujem, aby sa táto hodnota viazala na XAML a predpokladám, že to je dôvod, prečo hodnota nezviaže.

Mohol by niekto vysvetliť toto správanie?

odpovede:

2 pre odpoveď č. 1

Ak sa viažete na nulový majetok, viažete sa na nehnuteľnosť samotnú alebo na nehnuteľnosť.Value?

Väzba na "myCompany.CompanyId.Value" namiesto na "myCompany.CompanyId" .. Nullable polia majú ďalšie vlastnosti pre "HasValue" a "Value" a nemožno ich viazať priamo.

Dokonca aj vtedy, ak sa ich pokúsite viazať do textového poľa alebo ho používaťako všeobecný parameter, budete musieť vykonať kontrolu existencie (cez HasValue) a potom spracovať skutočnú základnú hodnotu (cez hodnotu). Takže ak CountryId nie je inicializovaný, hodnota bude vyhodnotená na hodnotu "null" a vaša väzba musí byť správna. Väzba XAML sa ľahko manipuluje nulovo, takže by ste mali byť dobré ísť :)