2012-05-24 6 views
0

클래스 이름이 Student이고 속성이 "isSelected:Boolean"이고 클래스가 바인딩 가능으로 정의되어 있습니다.바인딩 문제, 클래스의 속성 *에 바인딩 할 수 없습니다.

[Bindable] 
[RemoteClass(alias="portal::Student")] 
public class Student 

mxml 응용 프로그램에는 dataprovider가 Students의 ArrayCollection으로 설정된 DataGrid가 있습니다. 나는 모든 학생을 선택하기로되어있는 headerItemRenderer 체크 박스와 함께 DataGrid에 대한 checkboxex 컬럼을 가지고있다. (행의 모든 ​​체크 박스는 선택되거나 선택 해제되어야한다).

dataProvider의 각 Student 객체의 isSelected 속성을 false 또는 true로 설정하는 헤더의 체크 상자에 대한 click 이벤트에 대한 핸들러를 정의했습니다. 그러나 헤더의이 확인란을 클릭하면 경고 메시지가 나타납니다. 'Student'클래스의 'isSelected'속성에 바인딩 할 수 없으므로 행의 확인란이 업데이트되지 않습니다.

바인딩이 여기서 작동하지 않는 이유와이 문제를 해결하기 위해 무엇을해야할지 모릅니다. 어떤 도움이라도 대단히 감사합니다.

+0

우리에게 아이템 렌더러를 보여주십시오 – RIAstar

답변

0

의존적입니다. 코드에 어딘가에 학생 인스턴스에 대한 참조가 있고, 바인딩하려고합니다. 이 참조는 바인딩 체인을 작동 시키려면 [바인딩 가능]으로 선언되어야합니다.

또한 ActionScript를 사용하여 바인딩이 작동하지 않는 경우 MXML이 Cosma의 주석과 관련하여 해당 코드를 생성하므로 EventDispatcher를 확장 할 필요가 없습니다.

인라인 렌더러를 정의합니까? 이것은 내 생각에 최적이 아니다. 왜냐하면 컴포넌트가 생성되고 디버깅이 범위 문제를 일으킬 수 있기 때문에, 퍼지가 희미 해지기 때문이다. 새 구성 요소를 구현하고 IDataRenderer를 구현하고 라이브 사이클을 통해 하위에 데이터를 전파하거나 MXML의 구성 요소를 구현하는 것이 좋습니다. 왜 IDataRenderer인가? 이 인터페이스가 필요합니다.

또한, 그 하나에 확실하지 않다,하지만

[Bindable] 
    [RemoteClass(alias="portal.Student")] 
    public class Student {} 

안?

+0

기술적으로 별칭은 아무거나 될 수 있습니다 ... AMF에 직렬화되는 언어에 따라 다릅니다. "Path.Class"로만 본 적이 있습니다. –

+0

RemoteClass (별칭 = "portal :: Student") AMF에 직렬화하고 내 actionScript 클래스를 다음과 같이 매핑하는 데 사용되는 Parsley 프레임 워크 때문입니다. 자바 기반의 서버 측 동급. –

+0

내 itemRenderer가 인라인으로 정의되었으므로 제안한대로 mxml 구성 요소를 구현했지만 불행히도 도움이되지 않았습니다. –

0

actionscript 클래스가 EventDispatcher를 확장하도록 둡니다 (바인딩은 이벤트 전달을 기반으로합니다).

+0

불행히도 도움이되지 않았습니다. 경고 메시지가 계속 표시됨 : 'portal :: Student'클래스의 'isSelected'속성에 바인딩 할 수 없습니다. –

0

[Bindable]로 표시된 속성에 ItemRenderer가 들어오는 데이터를 저장해야합니다. "isSelected"가 아닌 전체 학생을 전달하고 싶을 것입니다 ...

관련 문제