我有一个按钮来更改我的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
中,我尝试将我的值更改为“Estado”,将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);
}
}
结果:我的展示中没有任何变化:(。
预期结果:我的显示屏已选择“Estado”描述
答案 0 :(得分:1)
您正在处理支持字段_filtroEstado
,这不会导致RaisePropertyChanged
属性集中的FiltroEstado
触发INotifyPropertyChanged
事件。因此,视图永远不会收到有关更改的通知。
return new MvxCommand(() => { _filtroEstado = new EstadoDto { IdEstado = -1, Descricao = "Estado" }; });
此外,SelectedItem
的引用需要来自绑定的ItemsSource
列表。因此,您可以执行以下操作:
return new MvxCommand(() =>
{
FiltroBairro = ListaBairro.FirstOrDefault(x => x.IdEstado == -1);
});
答案 1 :(得分:0)
您在MyServiceClient
内设置私人变量_filtroEstado
。因此,公开LimparFiltros
财产上的set
不会被解雇,FiltroEstado
也不会。