2017-04-20 1 views
0

J'ai un bouton pour changer mon mvxspinner, mais dans mon modèle de vue je ne peux pas changer la valeur affichée dans mon mvxspinner. Par exemple:mvxspinner pas changer la valeur d'affichage dans mon viewmodel

Je le mvxspinner et le bouton dans une mise en page:

<MvxSpinner 
     style="@style/SpinnerField.Filter" 
     android:id="@+id/filter_listacliente_spinner_bairro" 
     local:MvxBind="ItemsSource ListaBairro;SelectedItem FiltroBairro;" 
     local:MvxItemTemplate="@layout/filter_spinner_bairro" 
     local:MvxDropDownItemTemplate="@layout/filter_item_spinner_bairro" /> 

<Button 
     android:id="@+id/filter_listacliente_btlimpar" 
     android:theme="@style/DefaultButton" 
     local:MvxBind="Click LimparFiltros" 
     style="@style/DefaultButtonFilter"/> 

Dans mon ICommand, j'ai essayé de changer ma valeur à "Estado" et ID à "-1":

public ICommand LimparFiltros 
{ 
    get 
    { 
     return new MvxCommand(() => 
     { 

      FiltroEstado = new EstadoDto { IdEstado = -1, Descricao = "Estado" }; 

     }); 
    } 
} 

Mon SelectedItem:

var _filtroEstado = new EstadoDto(); 
public EstadoDto FiltroEstado 
{ 
    get { return _filtroEstado; } 
    set 
    { 
     _filtroEstado = value; 

     RaisePropertyChanged(() => FiltroEstado); 
    } 
} 

Résultat fo r ceci: Rien ne change dans mon affichage :(.

Résultat attendu: Mon affichage ont une description "Estado" sélectionné

Répondre

1

que vous abordez le champ de support _filtroEstado qui ne provoquera pas la RaisePropertyChanged dans votre FiltroEstado propriété mis à feu un événement INotifyPropertyChanged. Donc, la vue avec jamais être informé du changement.

return new MvxCommand(() => { _filtroEstado = new EstadoDto { IdEstado = -1, Descricao = "Estado" }; });

En outre, la référence pour les besoins SelectedItem à venir former la liste ItemsSource liée. Par conséquent, vous pouvez faire quelque chose comme:

return new MvxCommand(() => 
{ 
    FiltroBairro = ListaBairro.FirstOrDefault(x => x.IdEstado == -1); 
}); 
+0

j'ai changé ma question, je n'utilisé _filtroEstado pour définir les valeurs – user1875730

+1

@ user1875730 Le problème est que vous définissez la 'SelectedItem' à un objet référence qui n'existe pas avec 'ListaBairro', c'est-à-dire votre' ItemsSource'. Voir le commentaire supplémentaire dans ma réponse ci-dessus. Le 'SelectedItem' doit exister dans le' ItemsSource'. – Plac3Hold3r

+0

debuggin mon ViewModel, trouver ceci Warn> "MvxBind: Attention: 577.84 Valeur non trouvée pour spinner JWRConsultoria.AFV.JForce.Core.Application.Dtos.EnderecoDto" – user1875730

0

vous configurez votre variable privée, _filtroEstado, à l'intérieur LimparFiltros. Par conséquent, le set sur la propriété publique FiltroEstado ne se déclenche pas, et le RaisePropertyChanged non plus.

+0

Srry, j'ai changé ma question – user1875730