我成功声明在代码数据模板的后面,如下所示:

    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准备测试,看看它的工作原理大气压。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top