基于其他ListcollectionView的当前项更新ListcollectionView

本文关键字:ListcollectionView 更新 于其他 其他 | 更新日期: 2023-09-27 17:59:56

每次选择另一个ListCollection的Item时,我都要更新列表框中的ListCollectionView。

我有两个ListViewCollection、SceneCollectionView和ShotCollectionView。我希望根据ShotCollectionView中的属性SceneNumber筛选SceneCollection,但当我在SceneCollection视图中从一个项目转到另一个项目时,我可以更新ShotCollection视图。

这是我的ViewModel

public class ShotListViewModel : NotifyUIBase
{
    public ListCollectionView SceneCollectionView { get; set; }
    private Scenes CurrentScene
    {
        get { return SceneCollectionView.CurrentItem as Scenes; }
        set { SceneCollectionView.MoveCurrentTo(value); RaisePropertyChanged(); }
    }
    private ObservableCollection<Shot> _allShots = new ObservableCollection<Shot>();
    public ObservableCollection<Shot> AllShots
    {
        get { return _allShots; }
        set { _allShots = value; RaisePropertyChanged();}
    }
    private ListCollectionView _allShotsCollection;
    public ListCollectionView AllShotsCollection
    {
        get
        {
            if (_allShotsCollection == null)
            {
                _allShotsCollection = new ListCollectionView(this.AllShots);
                _allShotsCollection.Filter = IsSceneNumber;
            }
            return _allShotsCollection;
        }
    }
    private bool IsSceneNumber(object obj)
    {         
        if (obj as Shot != null
           && (obj as Shot).SceneNumber == (SceneCollectionView.CurrentItem as Scene).SceneNumber)
        {
            return true;                
        }
        return false;
    }

    public ShotListViewModel()
    {
        SceneCollectionView = Application.Current.Resources["SceneCollectionView"] as ListCollectionView;
        GetShotList(); //Populates the AllShots Observable collection.
        AddShotCommand = new RelayCommand(AddShot);
        FilterShotsCommand = new RelayCommand(AddShot);
    }

我在这里缺少了什么来使它工作,还是使用ICollectionViewLiveShaping更好。但我不知道如何实现

基于其他ListcollectionView的当前项更新ListcollectionView

我不明白你想做什么,但让我们谈谈一个例子:

假设我们有

ListBox1绑定到ListBox1ItemsListBox2绑定到ListBox2Items

如果要筛选ListBox2中的数据,则必须筛选ListBox2Items。如何做到这一点?很简单:ListBox1有一个属性SelectedItem,您可以将其绑定到---ListBox1SelectedItem。每次选择发生更改时,在ListBox1SelectedItem的setter中,您都可以触发ListBox2Items上的筛选器。

希望你能理解我的解释。

相关文章:
  • 没有找到相关文章