Využij akce až 30 % zdarma při nákupu e-learningu. Více informací. Zároveň je tento týden sleva až 80 % na e-learning týkající se C# .NET
Hledáme nového kolegu do redakce - 100% home office, 100% flexibilní pracovní doba. Více informací.
discount week 30 halloween
Avatar
Jirka
Neregistrovaný
Avatar
Jirka:4.3.2014 19:29

Mam TextBox nabindovaný na DataTable, na TextBoxu mam vlastní validaci. Když text edituji validace bez problémů funguje. Problém mam, že po načtení se validace na načtená data neprovede. Netušíte někdo jak to vyřešit?

<TextBox HorizontalAlig­nment="Left" Height="23" Margin="10,94,0,0" TextWrapping="Wrap" VerticalAlignmen­t="Top" Width="120" Validation.Error="Va­lidation_Error">
<TextBox.Text>
<Binding Path="[hodnota]" UpdateSourceTrig­ger="PropertyChan­ged" ValidatesOnDa­taErrors="Tru­e" NotifyOnValida­tionError="Tru­e">
<Binding.Vali­dationRules>
<local:StringTo­IntValidation­Rule ValidationStep="Raw­ProposedValue"/>
</Binding.Vali­dationRules>
</Binding>
</TextBox.Text>
</TextBox>

public aaa()
{
InitializeCom­ponent();

DataTable dt = _App.dataTable("se­lect * from uzivatele where id = 1");
grdTesting.Da­taContext = dt.Rows[0];
}

public class StringToIntVa­lidationRule : ValidationRule
{
public override ValidationResult Validate(object value, System.Globali­zation.Culture­Info cultureInfo)
{
int i;
if (int.TryParse(va­lue.ToString(), out i))
return new ValidationResul­t(true, null);

return new ValidationResul­t(false, "Please enter a valid integer value.");
}
}

 
Odpovědět
4.3.2014 19:29
Avatar
Petr Domes (petrds):4.3.2014 20:32

Musíš zavolat validaci ručně.

myTextBox.Get­BindingExpres­sion(TextBox.Tex­tProperty).Up­dateSource();

Dělám na tutoriálu, kde se bude řešit validace.

 
Nahoru Odpovědět
4.3.2014 20:32
Avatar
Odpovídá na Jirka
Michal Štěpánek:5.3.2014 6:20

stejně jsem ti odopověděl i na dotnetportalu... Co chceš po NAČTENÍ dat validovat? Validace přece musela proběhnout už před uložením do DB a při načtení tedy musí být validní!

Nahoru Odpovědět
5.3.2014 6:20
Nikdy neříkej nahlas, že to nejde. Vždycky se totiž najde blbec, který to neví a udělá to...
Avatar
Petr Domes (petrds):5.3.2014 8:30

já to používám při vytváření nového záznamu, když se klikne na ulozit

 
Nahoru Odpovědět
5.3.2014 8:30
Tento výukový obsah pomáhají rozvíjet následující firmy, které dost možná hledají právě tebe!
Avatar
Jirka
Neregistrovaný
Avatar
Odpovídá na Petr Domes (petrds)
Jirka :5.3.2014 9:10

Díky za radu. Vyzkouším to.
Taky to používám při vytváření nových záznamů, nebo při automatických úpravách které musí uživatel, upravit.

 
Nahoru Odpovědět
5.3.2014 9:10
Avatar
Jirka
Neregistrovaný
Avatar
Odpovídá na Petr Domes (petrds)
Jirka :5.3.2014 21:35

Mam ještě jeden problém.

Takto zobrazím chybu:
<Label HorizontalAlig­nment="Left" Height="23" Margin="10,66,0,0" VerticalAlignmen­t="Top" Width="272"
Content="{Binding Path=(Validati­on.Errors)[0]­.ErrorContent, ElementName=Ro­otElement}" />

Když je ale v Validation.Errors více chyb zobrazí se první chyba, já bych potřeboval poslední. Bohužel se mi nedaří něco jako:
Path=(Validati­on.Errors)[Va­lidation.Error­s.Length].Error­Content

Předem díky za jakoukoli pomoc.

 
Nahoru Odpovědět
5.3.2014 21:35
Avatar
Petr Domes (petrds):5.3.2014 23:47

(Validation.Errors) měla by to být kolekce, takže zkus
Path=(Validati­on.Errors)[Va­lidation.Error­s.Count-1].ErrorContent

 
Nahoru Odpovědět
5.3.2014 23:47
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 7 zpráv z 7.