迭代动态生成的控件并获取某些属性

时间:2012-02-15 07:36:54

标签: silverlight wpf-controls

我有一个具有ItemsControl的UserControl。此ItemsControl绑定到对象列表。为了显示这些对象,我有* DataTemplate * s来确定对象的呈现方式。

我希望能够检索控件的当前值,例如Text(如果它是TextBox)或SelectedItem(如果它是ComboBox)。

如何迭代这些动态生成的控件?我不知道控件的名称,因为它们是在运行时生成的。

谢谢..

1 个答案:

答案 0 :(得分:1)

除了在可视化树中搜索控件及其模板属性之外,我能想到的最简单的原因可能是将ItemsControl数据源绑定到ObservableCollection。这就是为什么您可以动态地将任何类型的控件添加到列表中。

一旦这样做,您就可以轻松检查列表中每个UIElement的类型。例如;如果是文本框,则通过强制转换等方式获取文本属性。