【发布时间】:2017-06-26 13:17:15
【问题描述】:
在我的 WPF 项目中,我在 Code Behind 中创建了一个自定义 ListView。在此 ListView 中有一个包含按钮的列,由我的资源字典中的数据模板定义。
<DataTemplate x:Key="DataTemplate_EditButton">
<Button Style="{DynamicResource Button_Image}" Width="25" ... />
</DataTemplate>
当我初始化 ListView 时,我使用以下代码创建列:
GridViewColumn buttonColumn = new GridViewColumn();
DataTemplate dt = Application.Current.TryFindResource("DataTemplate_EditButton") as DataTemplate;
buttonColumn.CellTemplate = dt;
...
gridView.Columns.Add(buttonColumn);
现在我想将事件处理程序绑定到按钮的单击事件。我无法在模板中执行此操作,因为我需要为 Dictionary 类创建一个代码,并且无论如何我都需要 ListView-UserControl 中的事件处理程序。当我使用数据模板创建列时,当然无法访问为每一行创建的按钮。
处理以所述方式创建的按钮的点击事件的最佳方法是什么?
提前致谢,
弗兰克
【问题讨论】:
-
是否有理由在代码后面而不使用正确的方法?
-
“我想将事件处理程序绑定到按钮的点击事件” - 不要。使用命令。
-
请看看这个SO answer,也为你在后面的代码中这样做感到羞耻。
标签: c# wpf event-handling datatemplate