none
Cómo ensamblar un espacio de nombres en un proyecto WPF RRS feed

  • Pregunta

  • Hola, soy nuevo en el foro. Estoy aprendiendo WPF e intento reproducir este ejemplo de DataTemplate relacionado con el artículo MSDN "Información general sobre plantillas de datos", escribiendo el "code-behind" en VB (en el ejemplo está en C#). El primer problema que enfrento es que no sé cómo ensamblar un espacio de nombres creado en el archivo MainWindow.xaml.vb. Leí muchas publicaciones y preguntas relacionadas, pero no he podido encontrar una solución. Cuando compilo el proyecto se ejecuta correctamente, pero el error sigue apareciendo. También leí que podría ser un bug de VS relacionado con la configuración de la arquitectura del sistema en la configuración de la aplicación (x64 x86).

    Archivo MainWindow.xaml:

    <Window x:Class="DataTemplatingIntro.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:SDKSample"
            mc:Ignorable="d"
            Title="MainWindow" Height="450" Width="800">
        <Grid>
            
        </Grid>
    </Window>

    Archivo MainWindow.xaml.vb:
    Imports System.Windows
    
    Namespace DataTemplatingIntro
        Public Class MainWindow
            Public Sub New()
    
                ' Esta llamada es exigida por el diseñador.
                InitializeComponent()
    
                ' Agregue cualquier inicialización después de la llamada a InitializeComponent().
    
            End Sub
        End Class
    End Namespace
    Error XLS0414 No se encontró el tipo 'DataTemplatingIntro.MainWindow'. Compruebe que no falta una referencia a un ensamblado y que se han compilado todos los ensamblados a los que se hace referencia. SDKSample MainWindow.xaml


    ¿Cómo puedo resolver este problema?


    Agradezco de antemano cualquier ayuda.




    miércoles, 29 de abril de 2020 17:52

Respuestas

  • Hola, pude solucionar el XAML de la siguiente manera:

    <Window x:Class="SDKSample.DataTemplatingIntro.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:SDKSample.DataTemplatingIntro"
            mc:Ignorable="d"
            Title="MainWindow" Height="350" Width="525" SizeToContent="WidthAndHeight">
        <Grid>
            
        </Grid>
    </Window>

    Ahora el error que surgió fue el siguiente:

    Error BC30451 'InitializeComponent' no está declarado. Puede que sea inaccesible debido a su nivel de protección. 

    Hay alguna manera de solucionarlo? Muchas gracias, Leandro. 


    Saludos

    viernes, 1 de mayo de 2020 0:20

Todas las respuestas

  • Deleted
    miércoles, 29 de abril de 2020 18:10
  • hola

    imagino seguiste este articulo

    Información general sobre plantillas de datos

    Si es asi veo que no entendiste del todo el codigo, porque alli el namespace lo llama SDKSample, si en tu caso no defines nada con ese nombre para que lo defines en la linea:

        xmlns:local="clr-namespace:SDKSample"

    eso deberias quitarlo

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 29 de abril de 2020 18:20
  • Hola Leandro, muchas gracias por tu respuesta. Realicé el cambio que me sugeriste:

    xmlns:local="clr-namespace:DataTemplatingIntro"

    Quitando SDKSample ya que la clase MainWindow está definida en el espacio de nombres DataTemplatingIntro.

    En esa misma línea del XAML me aparece el siguiente error:

    Error XLS0419 Espacio de nombres CLR no definido. El URI 'clr-namespace' hace referencia a un espacio de nombres 'DataTemplatingIntro' que no se encontró. SDKSample MainWindow.xaml

    También intenté con eliminar la línea (por el momento no voy a utilizar el prefijo local) pero el error original persiste.




    miércoles, 29 de abril de 2020 19:17
  • Leandro, ese es el artículo. No pude agregar el hipervínculo debido a que mi cuenta no está verificada aún. Allí lo llama SDKSample al namespace pero el código que tomé para reproducir el ejemplo es el que se encuentra en GitHub (hay un link más abajo que lleva al mismo donde dice "Con esto concluye la explicación de este ejemplo. Para obtener el ejemplo completo, vea Introducción a la aplicación de plantillas de ejemplo."), y ahí define un namespace llamado "DataTemplatingIntro".
    miércoles, 29 de abril de 2020 19:25
  • ok pero de ser asi copiaste de forma incorrecta

    MainWindow.xaml

    alli esta usando

        xmlns:local="clr-namespace:DataTemplatingIntro"

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 29 de abril de 2020 21:37
  • Este es mi archivo MainWindow.xaml:


    No puedo determinar que estoy haciendo mal.

    Este es el segundo error que aparece también:

    miércoles, 29 de abril de 2020 22:27
  • hola

    Si realizar un Rebuild ese mensaje no desaparece?

    El diseñador de xaml se puede ver correctamente ?

    Si creas un proyecto nuevo de cero WPF en vb.net, al definir una view tiene el x:Class ? porque puede que en c# sea diferente a vb.net

    saludos


    Leandro Tuttini

    Blog
    MVP Profile
    Buenos Aires
    Argentina

    miércoles, 29 de abril de 2020 23:34
  • Hola, pude solucionar el XAML de la siguiente manera:

    <Window x:Class="SDKSample.DataTemplatingIntro.MainWindow"
            xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
            xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
            xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
            xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:SDKSample.DataTemplatingIntro"
            mc:Ignorable="d"
            Title="MainWindow" Height="350" Width="525" SizeToContent="WidthAndHeight">
        <Grid>
            
        </Grid>
    </Window>

    Ahora el error que surgió fue el siguiente:

    Error BC30451 'InitializeComponent' no está declarado. Puede que sea inaccesible debido a su nivel de protección. 

    Hay alguna manera de solucionarlo? Muchas gracias, Leandro. 


    Saludos

    viernes, 1 de mayo de 2020 0:20