我有一个包含两个CollectionViews的viewmodel。
我用于导航和数据输入/编辑的一个。 另一个我想用于过滤目的,并在表单上的一些Listview中显示过滤。
当我在observablecollection上应用过滤时,我不希望主视图(用于DataEntry目的)受到影响。
提前致谢!
答案 0 :(得分:5)
只要您使用单独的集合视图,更改一个不会影响另一个。这是集合视图的重点 - 它们是对同一集合的独立视图。
答案 1 :(得分:0)
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;
}
}