2012-01-16 1 views
0

Je ne peux pas pourquoi cela fonctionne (lie une seule voiture à RadDataForm):BIND une seule RIA Entité Voir

XAML:

<tk:RadDataForm ItemsSource="{Binding Path=Cars}" 
    AutoGenerateFields="True" DataContext="{Binding}" /> 

viewmodel:

public void OnNavigatedTo(NavigationContext navigationContext) 
{ 
    carId = int.Parse(navigationContext.Parameters["IdRecord"]); 
    Cars= _carContext.GetCarById(carId); 
} 

private IEnumerable<Car> cars; 
public IEnumerable<Car> Cars 
{ 
    get { return this.cars; } 
    set 
    { 
     if (this.cars!= value) 
     { 
      this.cars= value; 
      this.RaisePropertyChanged(() => this.Cars); 
     } 
    } 
} 

et ce pas:

xaml:

<tk:RadDataForm CurrentItem="{Binding Path=CurrentCar}" 
    AutoGenerateFields="True" DataContext="{Binding}" /> 

viewmodel:

public void OnNavigatedTo(NavigationContext navigationContext) 
{ 
    carId = int.Parse(navigationContext.Parameters["IdRecord"]); 
    CurrentCar= _carContext.GetCarById(carId).FirstOrDefault(); 
} 

private Car currentCar; 
public Car CurrentCar 
{ 
    get { return this.currentCar; } 
    set 
    { 
     if (this.currentCar!= value) 
     { 
      this.currentCar= value; 
      this.RaisePropertyChanged(() => this.CurrentCar); 
     } 
    } 
} 

Je ne veux pas IEnumerable <> parce que je veux une seule entité. Et, en passant, je veux comprendre ce qui se passe mal ...

Répondre

0

Lors de la liaison à une seule entité, vous devez utiliser CurrentItem au lieu de ItemsSource.

+0

Merci mais ça ne marche pas aussi. Je modifie le code avec votre suggestion. –

+0

Voyez-vous des erreurs de liaison dans la sortie VS? – dmusial

+0

J'ai trouvé que pour récupérer une seule entité, je dois définir un service qui retourne un seul TEntity et non un IEnumerable ou IQueryable . De cette façon fonctionne, merci. –

Questions connexes