2011-02-14 11 views
6

Estoy intentando crear algunos datos de muestra de mis clases de ViewModel en Expression Blend. Sin embargo, Expression Blend se detiene y dice "La referencia del objeto no está configurada para una instancia de un objeto". Personalmente, no entiendo de dónde proviene esta excepción.Crear datos de muestra de Class in Blend throws "Referencia de objeto no establecida en una instancia de un objeto"

¿Alguien tiene una idea de por qué sucede esto?

Esta es mi UsersListViewModel:

[Export] 
public class UserListViewModel : ViewModelBase 
{ 
    [ImportingConstructor] 
    public UserListViewModel(IUserListView view) 
     : base(view) 
    { 

    } 

    private ObservableCollection<UserItem> _userList; 

    public ObservableCollection<UserItem> UserList 
    { 
     get { return _userList; } 
     set 
     { 
      if (_userList != value) 
      { 
       _userList = value; 
       RaisePropertyChanged("UserList"); 
      } 
     } 
    } 

    private UserItem _selectedUser; 

    public UserItem SelectedUser 
    { 
     get { return _selectedUser; } 
     set 
     { 
      if (_selectedUser != value) 
      { 
       _selectedUser = value; 
       RaisePropertyChanged("SelectedUser"); 
      } 
     } 
    } 

    private string _searchText; 

    public string SearchText 
    { 
     get { return _searchText; } 
     set 
     { 
      if (_searchText != value) 
      { 
       _searchText = value; 
       RaisePropertyChanged("SearchText"); 
      } 
     } 
    } 

    private ICommand _searchCommand; 

    public ICommand SearchCommand 
    { 
     get { return _searchCommand; } 
     set 
     { 
      if (_searchCommand != value) 
       _searchCommand = value; 
     } 
    } 

    // ... other ICommands 
} 

gracias de antemano por toda su ayuda,

Cheers, G.

+1

¿Encontró una solución para este problema? – Jens

Respuesta

0

Cuando nos enfrentamos a este problema, he encontrado que los atributos de mis propiedades causan este mensaje de error

Comentando [ImportingConstructor] y [Export] al crear los datos de muestra (compilar el proyecto una vez con Blend para asegurarse de no trabajar con la versión anterior) podría hacer el truco aquí.

1

¡ACTUALIZACIÓN! Laurent (autor de MvvmLight) publicó cómo depurar los datos de tiempo de diseño. Blog post here.

Encontré la causa y la solución a este error en Blend o al abrir un .xaml en Visual Studio.

Referencia de objeto no establecida en una instancia de un objeto.

Blend intenta ejecutar su código de tiempo de diseño y si golpea un puntero nulo en alguna parte, este es el error que obtiene.

Por lo tanto, realice un seguimiento de su código creando los datos de tiempo de diseño. Lo más probable es que hayas olvidado inicializar algo o quizás tengas el tipo incorrecto.

Esto sería fácil de encontrar si pudiera capturar puntos de interrupción cuando el diseñador está ejecutando el código de usuario, pero no creo que esto sea posible.

+0

desafortunadamente el constructor de la Vista asociada a viewModel no tiene ningún código. Entonces, no creo que pueda ser la causa del problema. –

+0

¡Depure el problema! Enlace puesto en la respuesta. – srock

Cuestiones relacionadas