当前位置:  开发笔记 > 编程语言 > 正文

如何在XAML中动态访问元素名称?

如何解决《如何在XAML中动态访问元素名称?》经验,为你挑选了2个好方法。

我有一个用户填写的XAML输入表单.

我想验证这个表单.

我有一个集合中的字段信息,我想循环并检查每个字段.

但是如何在字符串中访问字段的名称,例如,当fieldInformation.FieldName ="CompanyName"时,我想检查"Field_CompanyName.Text".

伪代码:

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:


    
    


    
    


    
    

代码隐藏:

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

sipwiz.. 43

这不仅仅是代码隐藏文件中的FindName调用,还是我错过了什么?

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


Denis Vuyka.. 6

此外,如果您愿意从代码中添加UI元素,则必须使用RegisterName("Field_CompanyName", some_instance)方法调用FindName,默认情况下仅对XAML中声明的元素使用.



1> sipwiz..:

这不仅仅是代码隐藏文件中的FindName调用,还是我错过了什么?

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



2> Denis Vuyka..:

此外,如果您愿意从代码中添加UI元素,则必须使用RegisterName("Field_CompanyName", some_instance)方法调用FindName,默认情况下仅对XAML中声明的元素使用.

推荐阅读
黄晓敏3023
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有