'TranscriptCell'이라는 사용자 지정 Windows Phone 7 컨트롤이 있습니다. 몇 가지 DependencyPropetys를 추가했습니다. 완벽하게 작동합니다. 나는 void override OnApplyTemplate()
방법에 중단 점을 추가 한, 그리고 내 XAML 파일에, 나는이 같은 컨트롤을 사용할 때 :DataTemplate에서 OnApplyTemplate이 부적절하게 호출되는 경우
<EUILib:TranscriptCell Title="Hello World" HostO="MSI India" />
중단 점은, 정확히 한 번만 트리거를 즉 방법 void OnApplyTemplate()
정확히 한 번이라고합니다. 내가 좋아하는 뭔가를 할 그러나
:
<ListBox x:Name="TranscriptList" ItemsSource="{Binding TranscriptItems}">
<ListBox.ItemTemplate>
<DataTemplate>
<EUILib:TranscriptCell
Title="{Binding ActTitle}"
HostO="{Binding Host}"
/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
중단 점 끝없이 트리거되고있다. 바인드 된 소스는 테스트 할 때 정확히 2 개 항목의 목록을 제공하며 정확히 2임을 확인합니다. 여전히 OnApplyTemplate()
메서드는 끝없이 호출됩니다. 왜 이런 일이 일어나는 걸까요?
EDIT : 중단 점을 단계별로 따라 한 후 목록의 각 항목에 대해 초기화되는 항목이 2 개이므로 OnApplyTemplate()
이 인스턴스마다 반복해서 호출되고있는 것 같습니다. 즉, 메소드가 instance1::OnApplyTemplate()
, 그 다음에 instance2::OnApplyTemplate()
, 그 다음에 instnace1::OnApplyTemplate()
... 등으로 불리워진다.
예 그래도 가능합니다. 그것은 실제로 내 코드의 버그로 인해 ListBox의 DataContext를 지속적으로 업데이트했기 때문에 발생합니다. 그래서, 사실 그것은 약간의 오해입니다. 나는 당신에게 내 질문에 대답하는 데 시간을내어 upvote 줄테니까,하지만 나는 대답으로 표시 할 수 없다고 생각합니다. (어쨌든 당신은 어떤 담당자도 필요하지 않습니다 :)). 질문에 대답하기 위해 시간을내어 주셔서 감사합니다 :) –