Principales respuestas
Cómo ensamblar un espacio de nombres en un proyecto WPF

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.
- Editado Facundo Pugliese miércoles, 29 de abril de 2020 18:08
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- Marcado como respuesta Oystein EdwardsModerator viernes, 1 de mayo de 2020 14:28
Todas las respuestas
-
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- Propuesto como respuesta Oystein EdwardsModerator miércoles, 29 de abril de 2020 20:28
-
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.
- Editado Facundo Pugliese miércoles, 29 de abril de 2020 19:26
-
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".
-
ok pero de ser asi copiaste de forma incorrecta
alli esta usando
xmlns:local="clr-namespace:DataTemplatingIntro"
saludos
Leandro Tuttini
Blog
MVP Profile
Buenos Aires
Argentina -
Este es mi archivo MainWindow.xaml:
No puedo determinar que estoy haciendo mal.
Este es el segundo error que aparece también:
- Editado Facundo Pugliese miércoles, 29 de abril de 2020 22:38
-
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 -
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- Marcado como respuesta Oystein EdwardsModerator viernes, 1 de mayo de 2020 14:28