2016-08-21 1 views
0

다음 문제가 있습니다.응용 프로그램이 시작될 때 XAML에 정의 된 항목 추가를 어떻게 처리합니까?

Fooo : List와 같은 형식이 있으며 XAML에서이 컬렉션을 채 웁니다. 일부 추가 속성 (예 : 일부 속성이있는 항목이 예외를 throw하는 경우)을 구현하기 위해 Fooo에 List <> (Add, AddRange, Insert 등)의 "add"메서드를 재정의 할 수 있습니까? List에서 "add"메소드를 재정의하려고합니다 ("new"키워드를 사용하지만 작동하지 않습니다).

아이디어가 있으십니까?

+0

당신이 요구하는지 분명하지 않다. 아래에 설명 된 것처럼 메서드를 재정의 할 수 없습니다. 여러분이 할 수있는 최선의 방법은 메소드 선언에'new'를 사용하여'Add()'메소드를 숨겨 둡니다. 그러나 객체를'Fooo' 유형으로 보지 않는 코드는 메소드를 얻지 못합니다. 일반적으로 멤버를 숨기는 것은 좋지 않습니다 (C#이 명시 적으로 수행해야하는 이유입니다). 왜 추가 프로세스를 재정의하려고하는지 명확하지 않습니다. 'List '를 상속하는 대신에'IList'를 직접 구현할 수 있습니다.하지만 왜 처음에는 잘못된 요소를 추가하지 않는 것이 좋을까요? 여기 실제 시나리오는 무엇입니까? [mcve] 및 [ask]를 참조하십시오. –

답변

0

당신이 할 수없는 것이 가능 오버라이드 (override) Fooo

없음에 (추가 AddRange, 삽입 등)> 목록 <에서 방법을 "추가"하는 것입니다. 우리는이 이야기 몇 가지 질문이 있습니다 List<T>을 캡슐화하고 IList<T>

를 구현해야합니다 :

+0

Fooo를 구현 한 경우 XAML은 List <>가 아닌 Fooo에서 항목을 추가하는 메서드를 호출해야합니다. 내가 틀렸다면 나를 바로 잡아라. – slavka

+0

@slavka xaml에서 List 을 채워야하며 Add 메서드를 호출하여 목록에 새 항목을 추가합니다. List 인터페이스 구현은 올바른 방법입니다. –

관련 문제