2012-07-12 3 views
1

내 데이터 격자에 사용자 정의 항목 렌더러를 사용하고 있으며 값에 음수 값이있는 경우 버튼을 표시하거나 보이지 않게해야합니다 렌더러에서. 그래서 첫 번째 렌더러가 꺼지면 플래그를 false로 설정하고, 음의 값이 있으면 true로 설정하고, 플래그의 값을 확인합니다. 렌더러 인스턴스에서 데이터가 변경 될 때마다 dataChange 이벤트를 전달할 수 있다는 것을 알지만 어쨌든 모든 작업이 완료되면 알 수 있습니다. 감사합니다.일단 모든 사용자 정의 항목 렌더러가 생성/설정되면 이벤트

답변

2

그런 이벤트가 없습니다.

다른 Flex 구성 요소와 마찬가지로 렌더러는 작성된 후에 CREATION_COMPLETE을 전달합니다. ItemRenderers은 일반적으로 재활용됩니다 (동일한 객체에 렌더링 할 새 데이터가 할당 됨). 따라서 재활용을 비활성화하지 않는 한 CREATION_COMPLETE을 수신하는 것으로는 충분하지 않습니다.

Spark List 구성 요소의 경우 레이아웃 클래스에 useVirtualLayout=false을 설정하여 재활용을 비활성화 할 수 있습니다. Spark DataGrid 클래스가 이것을 지원하는지 확실하지 않습니다. MX DataGrid에는이를 수행 할 수있는 다른 방법이있을 수 있습니다.

그러나 재활용을 비활성화하면 성능에 영향을 줄 수 있습니다. 나는 DATA_CHANGE 이벤트가 최상의 솔루션/w 아이디어 생각 :

  • 데이터의 초기 상태를 결정합니다 (예 : 어떤 부정적인 값이있는) 렌더러에
  • 에서, DATA_CHANGE 이벤트를 사용 (또는 렌더러의 data 속성에 대한 설정자를 재정 의하여 데이터가 변경된시기를 알 수 있습니다.
  • 데이터가 변경되면 거품을 생성 할 사용자 지정 이벤트 클래스를 전달하십시오. 이 이벤트에는 값이 음수인지 아닌지 여부를 알려주는 속성이 있습니다.
  • 렌더러의 사용자 지정 이벤트가 그리드까지 버블 링되므로 모든 렌더러의 변경 사항을 처리하기 위해 하나의 리스너를 그리드에 추가 할 수 있습니다.
+0

답장을 보내 주셔서 감사합니다. 첫 번째 ItemRenderer가 언제 사용되는지, 그리드의 마지막 항목이 완료되었는지를 알 수있는 방법에 대해 혼란스러워합니다. 내가 할 수있는 방법이 있니? – iman453

+0

할 수 없습니다. 각 렌더러는 생성이 완료되면 한 번 완료하고 데이터가 변경 될 때마다 ** 데이터를 변경합니다. 그리드에 초기 데이터를 제공하고 있기 때문에 초기 값이 음수인지 알 수 있습니다. 그런 다음 데이터 변경 이벤트를 사용하여 위에서 설명한 음수 값을 찾아야합니다. –

+0

미안하지만, 내 문제를 잘 설명하지 않는다고 생각합니다. 그리드의 셀 집합이 렌더링 될 때마다 음수 값이 있는지를 알 수 있어야합니다. 처음에는 렌더 링이 모두 이루어졌고 값 중 하나가 음수 였으므로 플래그를 True로 설정했습니다. 다음 번에 사용자가 그리드에서 아래로 스크롤하면 깨끗한 슬레이트가되기를 원하기 때문에 플래그를 다시 false로 설정하고 렌더러 중 하나라도 음수 값을 얻으면 다시 true로 설정합니다. 하지만 렌더링의 모든 '집합'의 시작 부분에 플래그를 false로 설정하는 실제 방법은 없다고 생각합니다. 도와 줘서 고마워. – iman453

관련 문제