我正在使用 MVVM 和 Ms Toolkit。 我正在 CollectionView 中显示一个集合..但我(如果可能)想隐藏“已删除项目”(由模型上的已删除标志设置)。 这就是为什么我在选项卡页面中使用全局“保存”过程,但隐藏我删除的内容会很好。 我尝试过Where(p=p.deleted==false) 但是:
搜索谷歌和文档,.
由于您没有显示代码,我将提供更通用的答案。
您可以向模型类添加
IsDeleted
属性:
public partial class MyModel : ObservableObject
{
[ObservableProperty]
private string _name;
[ObservableProperty]
private bool _isDeleted;
}
然后,在您的 ViewModel 中,您将保留您的
ObservableCollection<MyModel>
:
public partial class MyViewModel : ObservableObject
{
[ObservableProperty]
private ObservableCollection<MyModel> _myItems;
}
最后,在您的视图中,您将绑定到
IsDeleted
属性并使用 MCT 中的 InvertedBoolConverter 来显示或隐藏已删除的项目:
<ContentPage.Resources>
<mct:InvertedBoolConverter x:Key="InvertedBoolConverter" />
</ContentPage.Resources>
<CollectionView ItemsSource="{Binding MyItems}">
<CollectionView.ItemTemplate>
<DataTemplate x:DataType="models:MyModel">
<Label
Text="{Binding Name}"
IsVisible="{Binding IsDeleted, Converter={StaticResource mct:InvertedBoolConverter}}" />
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>