원본 항목 (A)의 실시간 컬렉션이 주어지면 변환 된 항목 (B)의 모음을 제공하는 것을 목표로하는 ConvertingCollection을 구현합니다. 콜렉션 B는 콜렉션 A에서 발생하는 모든 변경 사항을 반영합니다. MVVM에서 모델 컬렉션이있는 ViewModel 콜렉션으로 사용하는 것이 목표이지만 많은 다른 상황에서 사용할 수 있다고 생각합니다.ivalueconverter 대 system.converter 대 delegate
이 클래스는 사용자가 유형 A에서 유형 B로 객체를 변환 할 수있는 방법을 제공해야합니다. 진행 방법은 여러 가지가 있지만 가장 좋은 접근 방식을 결정할 때 그 차이점을 충분히 알지 못합니다 :
내가 WPF 관련 될 것 같은
IValueConverter
요구할 수 있습니다. 이제 다른 곳에서는 사용하지 못하지만 혼란 스러울 수 있습니다. 제 클래스는 WPF 컨텍스트에서 처음 사용 되기는했지만, 다른 많은 컨텍스트에 적용하기에 충분히 일반적입니다. 또한IValueConverter
은 객체에서 객체로 변환됩니다. 즉, 다운 스트림을 캐스트하고 빌드시 충돌이 발생하지 않습니다.나는
System.Converter
을 선택할 수 있습니다. 이것은async
의 사용을 허용하고, 더 유쾌한, 나는 특정한 유형을 요구할 수있다. 또한, WPF와 관련없는 사람들의 마음에서, 내가 아는 한.마지막으로 TypeIn => TypeOut을 수행하는 대리인과 함께 갈 수 있습니다. 인스턴스화되고 강력하게 형식화 된 클래스가 없으며 사용자는 IValueConverter, Converter 또는 사용자 지정 함수를 사용하여 대리자를 구현할 수 있습니다.
지금, 나는 모든 단지 대표와 함께 처리 할 수있는 경우 Converter
및 IValueConverter
이 존재하는 이유를 모르겠어요. 그래서 저는 거기에 뭔가 빠져있는 것 같아요.
아무도 도와 줄 수 있습니까? 미리 감사드립니다. 감사합니다.
좋은 지적으로서, 나는이 옵션에 대해 생각하지 않았습니다. 그럼에도 불구하고 이는 전환이 내 수업을 사용할 때뿐만 아니라 모든 사용자의 프로젝트에 적용된다는 것을 의미합니다 ... 주 메시지를 편집하여 컨텍스트에 대해 자세히 알려줍니다. –