0
트리 뷰에 표시 할 FilterViewModel 목록이 있습니다. FilterViewModel에는, FilterViewModel 형의 Children 콜렉션이있어, 각 FilterViewModel는 체크 가능합니다. 트 리뷰가 작성되면XViewModel 목록을 X 목록으로 변환
public abstract class FilterViewModel
{
public string ID { get; set; }
public virtual IEnumerable<FilterViewModel> Children { get; private set; }
public bool? IsChecked { get; set; }
private FilterModel _filter;
public FilterViewModel(Filter filter, IEnumerable<Filter> checkedFilters)
{
_filter = filter;
CheckFilters(checkedFilters);
}
}
, 해당 필터과 같이 확인된다 : 그래서 같이
private void SetChildrenChecked(IEnumerable<Filter> filters,
IEnumerable<FilterViewModel> visibleList)
{
foreach (var filter in filters)
{
foreach (var filterVM in visibleList
.Where(filterVM => filter.ID == filterVM.ID))
{
if (filter.Children.Any())
{
SetChildrenChecked(filter.Children, filterVM.Children);
}
else
{
filterVM.Children.ForEach(c => c.IsChecked = true);
}
}
}
}
을하지만, 내가 반대 할 수있는 가장 좋은 방법을 알아 내기 위해 애 쓰고 있어요 -를 반환 체크 된 모든 FilterViewModel에 대한 목록입니다.
누구든지 빠른 해결책을 알고 있습니까? 나는 나쁜 습관이되고 ViewModel에 모델을 드러내는 일을 혼란스럽게 할 것입니다 ...