C#WPF风格的触发器在代码隐藏中不起作用

C#WPF风格的触发器在代码隐藏中不起作用,c#,wpf,triggers,styles,datatemplate,C#,Wpf,Triggers,Styles,Datatemplate,我正在尝试向WPF数据模板添加触发器,我将在DataGrid中将其用作单元格模板。我需要以编程的方式来做这件事,所以这一切都在代码背后。我希望在鼠标悬停在边框上时将其高亮显示,但它似乎不起作用 DataTemplate dt = new DataTemplate(); // other implementation Trigger t1 = new Trigger() { Property = IsMouseOverProperty, Value = true }; t1.Setters.A

我正在尝试向WPF数据模板添加触发器,我将在DataGrid中将其用作单元格模板。我需要以编程的方式来做这件事,所以这一切都在代码背后。我希望在鼠标悬停在边框上时将其高亮显示,但它似乎不起作用

DataTemplate dt = new DataTemplate();

// other implementation

Trigger t1 = new Trigger() { Property = IsMouseOverProperty, Value = true };
t1.Setters.Add(new Setter(BorderBrushProperty, System.Windows.Media.Brushes.Black));
t1.Setters.Add(new Setter(BorderThicknessProperty, new Thickness(4.0)));
dt.Triggers.Add(t1);

// add to visual tree, and other logic that works perfectly.

唯一不起作用的就是这个触发器。当我将鼠标移到单元格上时,它不会高亮显示边框。怎么了?

您必须指定
触发器和
设置器操作的元素

设置触发器的
SourceName
属性和设置器的
TargetName

var dt = new DataTemplate();

var t1 = new Trigger()
{
    SourceName = "source",
    Property = IsMouseOverProperty,
    Value = true
};

t1.Setters.Add(new Setter(BorderBrushProperty, Brushes.Black, "target"));
t1.Setters.Add(new Setter(BorderThicknessProperty, new Thickness(4.0), "target"));
dt.Triggers.Add(t1);

这里的源名称和目标名称是什么?