combo(["A","B","C","D"])
어떻게 selectIndex (2) 또는 selectItem ("B")과 같은 속성이 있는가 항목 B를 선택할 수 있다고 가정?
해당 속성을 찾을 수 없습니다.
data C = combo(list[str] items);
이 같은 값 (질문과 정렬하기) :
combo(["A","B","C","D"])
어떻게 selectIndex (2) 또는 selectItem ("B")과 같은 속성이 있는가 항목 B를 선택할 수 있다고 가정?
해당 속성을 찾을 수 없습니다.
data C = combo(list[str] items);
이 같은 값 (질문과 정렬하기) :
보인다.
내가 당신이 이런 식으로 선언 된 데이터 유형이 있다고 가정합니다
rascal>c = combo(["A","B","C","D"]);
C: combo(["A","B","C","D"])
점을 감안를 여러 가지 방법이 있습니다 목록의 두 번째 항목으로 이동할 수 있습니다. 당신이 combo
(위,이 items
이다)에있는 데이터에 필드 이름을 제공 한 경우, 당신은 단지 (인덱스 0 불량배의 목록이라는 것을 기억)이 말을 할 수
rascal>c.items[1];
str: "B"
당신이하지 않은 경우 이 이름을 부여하고, 일치를 사용하여, 당신은이 작업을 수행 할 수 있습니다 싶지 않아 :
rascal>if (combo(l) := c) println(l[1]);
B
변수 l
가 combo
내에서 개최 된 목록에 바인딩됩니다; 이 새로운 변수는 if
안에 있습니다. 물론이 두 경우 모두 목록의 길이가 충분한 지 확인하여 두 번째 요소를 읽는 동안 오류가 발생하지 않도록해야합니다. 당신은 중첩 된 목록 일치 사용하는 다음, 할도 수 :이 경우
rascal>if (combo([s1,s2,s*]) := c) println(s2);
B
을 s1
목록, 두 번째로 s2
의 첫 번째 요소를 발견하고, 무엇이든 (0 이상으로 s
됩니다 , 이는 다음에 나오는 *
의미입니다). combo
에 보관 된 목록의 길이가 2 이상인 경우에만 일치하므로이 항목을 별도로 확인하지 않아도됩니다. https://github.com/cwi-swat/rascal/blob/master/src/org/rascalmpl/library/vis/figure/interaction/swtwidgets/Combo.java#L40이
그래서 당신이 원하는 항목을 선택 할 수있는 유일한 방법은 당신이 선택하고자하는 하나의 첫 번째 항목으로 콤보를 만드는 것입니다 : 첫 번째 항목은 하드 와이어가 기본적으로 선택하는 것입니다 같은
나는 주어진대로 콤보가 선언되었다고 가정하고 대답했지만, 뭔가 다른 것을 찾고 있다면 질문에서 명확하지 않다. –
답변 주셔서 감사하지만 이것은 질문이 아니 었습니다. 콤보에 A, B, C를로드하면 기본적으로 A가 선택되어 표시됩니다 (화살표 옆에 표시). A..C 주문을 유지하면서 B가 선택되면 B가 선택되기를 바란다. – robert