2017-04-20 66 views
0

我有一個按鈕來更改我的mvxspinner,但在我的視圖模型中,我無法更改顯示在我的mvxspinner中的值。例如:mvxspinner不改變我的視圖模型中的顯示值

我在一個佈局的mvxspinner和按鈕:

<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"/> 

以我ICommand,我試圖改變我的值設定爲 「埃斯塔」 和ID爲 「-1」:

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

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

     }); 
    } 
} 

SelectedItem

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

     RaisePropertyChanged(() => FiltroEstado); 
    } 
} 

結果FO r這個:我的顯示器沒有任何變化:(。

預期結果:我的顯示器有一個描述「埃斯塔」選擇

回答

1

您正在處理支持字段_filtroEstado,這將不會導致FiltroEstado屬性集中的RaisePropertyChanged觸發INotifyPropertyChanged事件。所以這個觀點從來沒有得到變化的通知。

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

此外,對於需要SelectedItem基準來形成結合ItemsSource列表。因此,你可以這樣做:

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

我改變了我的問題,我不習慣_filtroEstado設定值 – user1875730

+1

@ user1875730的問題是,你的'SelectedItem'設置到對象「ListaBairro」不存在的引用,即您的「ItemsSource」。請參閱上面我的回答中的附加評論。 「SelectedItem」需要存在於「ItemsSource」中。 – Plac3Hold3r

+0

debuggin my ViewModel,找到這個警告>「MvxBind:Warning:577.84未找到微調控制器的值JWRConsultoria.AFV.JForce.Core.Application.Dtos.EnderecoDto」 – user1875730

0

你設置你的私有變量,_filtroEstado,裏面LimparFiltros。因此,公衆FiltroEstado上的set屬性未觸發,也不是RaisePropertyChanged

+0

Srry,我改變了我的問題 – user1875730

相關問題