如何从 Window.Resources 访问 Code Behind 中的对象?
跟进:
实际上,我正在尝试生成多个计时器。如果我的元素位于 DataTemplate 中,如何在 WPF 中正确执行此操作?
要在模板/数据模板中查找控件,请使用 FindName 方法。
http://msdn.microsoft.com/en-us/library/system.windows.frameworktemplate.findname.aspx
编辑:
或者您可以使用类和双向绑定来设置文本或您需要的任何内容。
class MyCustomTimer : INotifyPropertyChanged
{
string title { get; set; }
DispatcherTimer timer { get; set; }
...
}
使用 TwoWay 绑定在模板中绑定:
<TextBox Text={Binding title, Mode=TwoWay} />
将类添加到列表视图:
this.listview.items.add(new MyCustomTimer(...));
然后访问数据模板中的值,例如:
MyCustomTimer item0 = this.listview.Items[0] as MyCustomTimer;
item0.title = "This is text";
正如我能想到的那样。不,您无法访问数据模板中的元素。DataTemplate只是托管对象的表示 /xaml 视图。所以如果你有对你有用的东西。我建议您使用自定义控件并为其创建一些TemplateParts。通过这种方式,您可以从代码中获取模板部分。
您可以做的另一件事是使用VisualTreehelper类,这将为您提供元素的父母和孩子。