2009-03-26 9 views
10

Mam formularz wejściowy XAML, który użytkownik wypełnia.Jak dynamicznie uzyskać dostęp do nazw elementów w XAML?

Chcę zatwierdzić ten formularz.

Mam informacje o polu w kolekcji, które chcę przelecieć i sprawdzić każdego pola.

Ale jak uzyskać dostęp do nazwy pola, gdy jest w ciągu, np. when fieldInformation.FieldName = "CompanyName" Chcę sprawdzić "Field_CompanyName.Text".

Pseudokod:

foreach (var fieldInformation in _fieldInformations) 
{ 
    if (Field_{&fieldInformation.FieldName}.Text.Length > 2) 
    { 
     ErrorMessage.Text = String.Format("The length of {0} is too long, please correct.", fieldInformation.FieldName); 
     entryIsValid = false; 
    } 
} 

XAML:

<StackPanel Orientation="Horizontal" Margin="10 10 10 0"> 
    <TextBlock Width="150" Text="Customer ID:"/> 
    <TextBox x:Name="Field_CustomerID" Width="150" MaxLength="5" Text=""/> 
</StackPanel> 
<StackPanel Orientation="Horizontal" Margin="10 10 10 0"> 
    <TextBlock Width="150" Text="Company Name:"/> 
    <TextBox x:Name="Field_CompanyName" Width="150" MaxLength="40" Text=""/> 
</StackPanel> 
<StackPanel Orientation="Horizontal" Margin="10 10 10 0"> 
    <TextBlock Width="150" Text="Contact Name:"/> 
    <TextBox x:Name="Field_ContactName" Width="150" MaxLength="30" Text=""/> 
</StackPanel> 

Code-Behind:

_fieldInformations.Add(new FieldInformation { FieldName = "CustomerID", FieldSize = 5 }); 
_fieldInformations.Add(new FieldInformation { FieldName = "CompanyName", FieldSize = 40 }); 
_fieldInformations.Add(new FieldInformation { FieldName = "ContactName", FieldSize = 30 }); 

Odpowiedz

37

Czy to nie jest po prostu wezwanie FindName w kodzie za ciebie plik lub czy czegoś brakuje?

TextBox fieldTB = (TextBox)this.FindName("Field_CompanyName"); 
+0

Praca. Dziękuję Ci – deanpodgornik

6

także jeśli są chętni, aby dodać elementy interfejsu użytkownika od kod związany będzie trzeba użyć połączenia RegisterName("Field_CompanyName", some_instance) Sposób jak FindName prac domyślnie tylko dla elementów w ciągu deklarowanych XAML.

Powiązane problemy