Pregunta

Estoy declarando con éxito un modelo de datos en un código detrás de la siguiente manera:

    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);
    }

Pero ahora quiero agregar un controlador de tamaño cambiado al cambiar la línea:

            + "<StackPanel > "

a

            + "<StackPanel  SizeChanged="SizeChangedHandler" > "

Tengo el método "SizeChangedHandler" declarado en el código detrás. Esto resulta en un error de análisis xaml cuando los intentos de control para cargar en tiempo de ejecución. Sospecho que no puede encontrar el controlador "SizeChangedHandler". ¿Cómo puedo especificar este controlador para que el analizador XAML es feliz.

¿Fue útil?

Solución

Se podría intentar algo como:

  dataTemplate.VisualTree.AddHandler(StackPanel.SizeChangedEvent, new SizeChangedEventHandler(SizeChangedHandler));

Editar:

Ok, para Silverlight que podría tratar con el método de la DataTemplate que los rendimientos y UIElement a los que puede ATACH caso LoadContent . Lo siento, no tengo VS listo para probar y ver si funciona atm.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top