나는 형태의 바인딩이 있습니다WPF 바인딩은 인덱서 속성과 목록 요소를 어떻게 구별 할 수 있습니까?
Path=SpecialCollection[0]
SpecialCollection 클래스는 ObservableCollection에를 확장 인덱서 속성이 있습니다.
public T this[string propertyValue]
{
get
{
// do stuff
return default(T);
}
}
내 문제는 바인딩에서 컬렉션의 0 번째 항목을 반환하는 대신 인덱서 속성 값을 가져 오려고한다는 것입니다. 컬렉션의 인덱서 속성의 getter를 호출하는 대신 컬렉션 요소를 반환하도록 바인딩을 강제로 정수 0으로 처리하는 방법이 있습니까?
분명히 인덱서를 사용하면 실제 인덱서가 호출됩니다. 어쨌든'default (T)'를 반환하면 정확히 무엇을하고 있습니까? 정말 인덱서에 과부하가 필요합니까? –
@ H.B. 내가 추가 한 'do stuff'주석을 보게 될 것입니다. 세부 사항을 추상화하려는 의도입니다. FWIW,이 특정 컬렉션 클래스는 propertyValue와 값이 일치하는 속성을 가진 첫 번째 항목을 검색합니다. 우리가 이것을하지 않겠다는 것을 제안한다면, 그것은 변하지 않을 것이기 때문에, 그것을 해결하려는 나의 욕구가 있습니다. – Craig
나는'DoStuff'에 대해 알고 있었지만 이름에서 알 수 있듯이 인덱스는 일종의 색인을 통해 항목에 액세스하는 데에만 사용해야한다고 생각합니다. (모든 종류의 작업이이 작업과 일치하지 않으면 기본값 (T) 반환) –