2009-03-26 17 views
10

Kullanıcının doldurduğu bir XAML giriş formum var.XAML'de öğe adlarına dinamik olarak nasıl erişilir?

Bu formu doğrulamak istiyorum.

Alan bilgisini, döngü yapmak istediğim ve her alanı kontrol edebileceğiniz bir koleksiyona sahibim.

Dize, gibi bir dizgede olduğunda alan adlarına nasıl erişirim? Ne zaman fieldInformation.FieldName = "CompanyName" Ben "Field_CompanyName.Text" kontrol etmek istiyorum.

yalancı kod:

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> 

planda kodlama:

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

cevap

37

arkasında size kodunda bu sadece bir FindName çağrı değil mi dosya veya bir şey mi özlüyorum Ayrıca

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

Çalışıyor. teşekkür ederim – deanpodgornik

6

Eğer sadece XAML içinde bildirilen öğeler için varsayılan olarak FindName eserler olarak RegisterName("Field_CompanyName", some_instance) yöntem çağrısı kullanmak zorunda olacak arkasında kodundan UI öğeleri eklemek için istekli olup olmadığını.

İlgili konular