开发者

WPF-Multiple Views on ObservableCollection

I have a viewmodel containing two CollectionViews defined.

One I am using for na开发者_JS百科vigation and data entry/edit. Another I want to use for filtering purpose and show the filteration in some Listview on the form.

I don't want the main view(used for DataEntry purpose) to get affected while I applying filteration on observablecollection.

Thanks in Advance!


As long as you're using separate collection views, changing one won't affect the other. That is the point of collection views - they're independent views on the same collection.


ok, Got it! and went ahead with the same idea. But when I did so, I get Error = "The calling thread cannot access this object because a different thread owns it.". Hence my filteration doesn't work.. Following is the code-

    public ICollectionView Clients { get; set; } //Used for Data-navigation/modification
    public ListCollectionView CodeView { get; set; } // to be used for filteration purpose on form.

    string searchText = String.Empty;
    public string CompanyCodeSearch
    {
        get { return searchText; }
        set
        {
            try
            {
                searchText = value;
                OnPropertyChanged("CompanyCodeSearch");
                CodeView.Filter = new Predicate<object>(cmFilterData);
            }
            catch (Exception ex)
            {

            }
        }
    }


   private bool cmFilterData(object item)
    {
        bool _filteredData = false;
        try
        {
            var value = (item as cntClient);
            if (value == null || value.CompanyCode == null)
                return false; 

            _filteredData = value.CompanyCode.StartsWith(this.CompanyCodeSearch);
            return _filteredData;
        }
        catch (Exception ex)
        {
            return false; 
        }
    }
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜