나는 상태가 추가, 삭제, 수정 및 취소 된 각 엔터티가있는 관찰 가능한 컬렉션의 엔터티가 있습니다. I 버튼 추가를 선택하면 상태가 추가 된 후, 내 컬렉션은 엔터티를 포함해야필터링 규칙을 기반으로 컬렉션 필터링
- :
나는 아래로 내 컬렉션을 필터링한다 클릭 네 개의 버튼 ( 토글 )가 있습니다. I 버튼 삭제 및 추가를 선택하면
- , 다음 내 컬렉션 상태 추가, 나머지 없음을 가진 상태 삭제와 기관 및 단체를 포함해야합니다.
- 삭제, 추가 및 수정 단추를 선택한 경우 내 모음에 상태가 삭제됨, 추가 및 수정 된 항목이 포함되어야합니다. . . 곧.
- 버튼 중 하나를 선택 취소하면 해당 상태의 컬렉션에서 해당 엔티티를 제거해야합니다. 예를 들어 삭제됨을 선택 취소하고 추가 및 수정을 선택하면 내 모음에는 추가 및 수정 됨 상태 및 삭제되지 않은 항목이 있어야합니다. I 마스터 수집 및 필터링 회수를 작성한이 구현
. Filter 컬렉션은 선택 항목과 선택 취소 기준으로 필터링됩니다. 다음은 내 코드입니다 :
이private bool _clickedAdded;
public bool ClickedAdded
{
get { return _clickedAdded; }
set
{
_clickedAdded = value;
if(!_clickedAdded)
FilterAny(typeof(Added));
}
}
private bool _clickedDeleted;
public bool ClickedDeleted
{
get { return _clickedDeleted; }
set
{
_clickedDeleted = value;
if (!_clickedDeleted)
FilterAny(typeof(Deleted));
}
}
private bool _clickedModified;
public bool ClickedModified
{
get { return _clickedModified; }
set
{
_clickedModified = value;
if (!_clickedModified)
FilterAny(typeof(Modified));
}
}
private void FilterAny(Type status)
{
Func<Entity, bool> predicate = entity => entity.Status.GetType() != status;
var filteredItems = MasterEntites.Where(predicate);
FilteredEntities = new ObservableCollection<Entity>(filteredItems);
}
이 그러나 위의 규칙을 나누기 - 예를 들어 나는 모든 선택한 경우, 다음 나는 그때는 아직 수정 및 취소 추가 된 목록을 보여줍니다 삭제 첨가 한 다음 제거합니다. 필터링 된 컬렉션에서 수정 및 취소되어야합니다.
이 문제를 해결 좀 도와 주시겠습니까? 또한이 문제를 해결하려면 2 가지 목록이 필요합니다. .NET 3.5를 사용하고 있습니다.
내 가정은 당신이 당신의 이전 필터링하여 술어의를 유지하지 않는 것입니다. Filter 메서드에 대한 코드를 추가 할 수 있습니까? 또한 ClickedCancelled가 다른 Click * 메서드와 같은 것으로 가정합니다. – Kevin
예, 취소됨은 동일합니다. 필터 코드는 FilterAny 메소드 내부의 코드입니다. – Mike
** 필터 (typeof (Deleted)); **는 ** private void FilterAny (Type status) ** 메서드를 호출하지 않습니다. ** 그렇게하는 코드를 추가 할 수 있습니까? – Kevin