以编程方式设置DataGridTemplateColumn CellTemplate

时间:2013-05-23 20:17:04

标签: c# wpf xaml wpfdatagrid wpf-4.0

此问题与已发布的其他问题类似,但似乎没有提供适用于此处的解决方案。

问题: 尝试使用特定的DataTemplate在运行时创建DataGridTemplateColumn。 只想在DataTemplate中使用CheckBox。

由于各种原因,我不能在XAML中为此应用程序执行此操作,并且我知道不推荐使用FrameworkElementFactory

这就是我所拥有的:

string dt = "<DataTemplate  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  
xmlns:src="clr-namespace:WpfApplication40" > 
<CheckBox x:Name="dtCheckBox" Checked="CheckBox_Checked" /></DataTemplate>

 DataGridTemplateColumn tc1 = new DataGridTemplateColumn();
 DataTemplate datatemplate = (DataTemplate)System.Windows.Markup.XamlReader.Parse(dt);
 tc1.CellTemplate = datatemplate;
 dataGrid1.Columns.Add(tc1);

在包含类中:

 public void CheckBox_Checked(object sender, RoutedEventArgs e){}

在运行时,我不断收到一个消息框:

"Failed to create a 'Checked' from the text 'CheckBox_Checked'".

显然它无法弄清楚CheckBox_Checked处理程序在类中的位置,但为什么?

如果我取出Checked="CheckBox_Checked"它就可以了。

感谢您的见解。

0 个答案:

没有答案