我有一个标签页,上面有一些标签。
在其中两个标签中,我有一个列表。
在第一个列表中添加/编辑记录时,我需要刷新第二个列表,
因为在第二个列表的模型中有一个布尔属性,用于隐藏或不隐藏图像。
此行为无效。
如果我设置
SecondList = ObservableCollection<SecondClass>();
第二个列表正确更新,显示为空。
如果我更改了第二个列表属性ShowImage
,则列表未更新,变量为,但ListView不是。
如果我继续使用第二个标签并手动添加记录,则第二个列表会正确更新。
这是我用来执行此操作的代码:
MessagingCenter.Subscribe<RigaDettaglioViewModel>(this, Costanti.ChiaviMessaggi.AggiornaListaRigheWo.ToString(), (sender) => {
RaisePropertyChanged(() => ListaWORighe); // Update the first list.
RaisePropertyChanged(() => ListaSpese); // Update the second list.
});
RaisePropertyChanged
:
public void RaisePropertyChanged<T>(Expression<Func<T>> Property) {
var name = GetMemberInfo(Property).Name;
OnPropertyChanged(name);
}
XAML (VolosBaseButtonView是包含图片视图的网格):
<view:VolosBaseButtonView
Grid.Row="0" Grid.Column="4"
SoloIcona="True"
ColoreIcona="Red"
Icon="{core:Icona Warning}"
IsVisible="{Binding ShowImage}"
CommandParameter="{Binding .}"
Command="{Binding BindingContext.ApriInfoSpesaCommand, Source={x:Reference SpeseViewPage}}"/>
ListaSpese
(第二个列表):
public ObservableCollection<WorkOrderDettaglioListaSpese> ListaSpese {
get {
ObservableCollection<WorkOrderDettaglioListaSpese> Lista = null;
if (WoDett.ListaSpese != null) {
var ListaOrdinata = WoDett.ListaSpese.Where(R => !Utility.FlagTrattAnnullato(R.FlagTratt)).OrderByDescending(R => R.DataSpesa).ToList();
// Devo controllare, per ogni spesa, se c'è un intervento in quella data, altrimenti NoInterventoInData = true;
WorkOrderService.ControllaDateIntervento(ListaOrdinata);
Lista = new ObservableCollection<WorkOrderDettaglioListaSpese>(ListaOrdinata);
}
return Lista;
}
set {
WoDett.ListaSpese = new List<WorkOrderDettaglioListaSpese>(value);
RaisePropertyChanged(() => ListaSpese);
}
}
如何正确更新第二个标签中的列表?
谢谢!
修改
Link到示例项目。