如何添加处理程序动态的DataTemplate
-
25-09-2019 - |
题
我成功声明在代码数据模板的后面,如下所示:
private static DataTemplate CreateTemplate(string sortMemberPath, HorizontalAlignment horzAlignment)
{
const string xamlFormat
=
"<DataTemplate xmlns=\"http://schemas.microsoft.com/winfx/2006/xaml/presentation\" >"
+ "<StackPanel > "
+ " <TextBlock Margin=\"2,0\" VerticalAlignment=\"Center\" HorizontalAlignment=\"_HALIGNMENT_\" "
+
" Text=\"hello there\"> "
+ " </TextBlock> "
+ "</StackPanel>"
+ "</DataTemplate>";
return (DataTemplate) XamlReader.Load(xamlReturned);
}
但现在我想通过改变线添加一个尺寸改变处理程序:
+ "<StackPanel > "
到
+ "<StackPanel SizeChanged="SizeChangedHandler" > "
我在后面的代码中声明的方法“SizeChangedHandler”。这导致XAML分析错误时,控制试图在运行时加载。我怀疑它找不到处理程序“SizeChangedHandler”。我怎样才能使XAML分析器是幸福指定该处理程序。
解决方案
您可以尝试是这样的:
dataTemplate.VisualTree.AddHandler(StackPanel.SizeChangedEvent, new SizeChangedEventHandler(SizeChangedHandler));
编辑:
好吧,Silverlight的,你可以用的 LoadContent 上的DataTemplate该退货等的UIElement可向其中atach事件的方法。对不起,我没有VS准备测试,看看它的工作原理大气压。
不隶属于 StackOverflow