1

如何从 Window.Resources 访问 Code Behind 中的对象?

从资源生成

跟进:

实际上,我正在尝试生成多个计时器。如果我的元素位于 DataTemplate 中,如何在 WPF 中正确执行此操作?

计时器

4

2 回答 2

1

要在模板/数据模板中查找控件,请使用 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";
于 2013-06-19T19:23:43.007 回答
0

正如我能想到的那样。不,您无法访问数据模板中的元素。DataTemplate只是托管对象的表示 /xaml 视图。所以如果你有对你有用的东西。我建议您使用自定义控件并为其创建一些TemplateParts。通过这种方式,您可以从代码中获取模板部分

您可以做的另一件事是使用VisualTreehelper类,这将为您提供元素的父母和孩子。

于 2013-06-19T18:41:43.853 回答