2017-04-20 43 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

相关问题