2012-05-18 2 views
3

저는 Word AddIns를 처음 사용하고 리본 그룹을 추가하려고합니다. 각 RibbonGroup에 대해 동적으로 RibbonMenu를 추가 한 다음 Group 내 메뉴에 RibbonButton을 추가합니다. Word에서 동적으로 RibbonButton을 추가 Addin throws 컬렉션이 읽기 전용

은 내가 groud에 일이있어 okie 것 같다하지만 난 어떤 모음에 액세스 할 때마다

예 : group1.Items.add (새 RibbonButton()); Collection은 ReadOnly라고 말합니다.

하지만 내가 Collection의 IsReadOnly 플래그가 False로 설정되어있어 콜렉션이 읽기 전용이 아니라고 분명히 알리는 경우?

내가 무엇이 누락 되었습니까?

답변

2

RibbonMenu 또는 RibbonGroup에 단추를 추가하려고합니까? 설명에서 버튼을 메뉴에 추가하고 싶다고했지만 리본 그룹에 버튼을 추가하려는 경우 (예 : group1은 메뉴가 아닌 그룹 임)!

RibbonMenu에 단추를 추가 할 수 있어야하지만, RibbonGroup의 단추를 원할 경우 운이 없으면됩니다.
여기 RibbonGroup의 항목 속성에 대한 코드 주석의 :

오류를 얻고있는 이유는, 그리고 그 컬렉션의 IsReadOnly 속성을 false로 설정도 이유
// Summary: 
//  Gets the controls in the group. 
// 
// Returns: 
//  The collection of controls in the group. 
// 
// Exceptions: 
// System.InvalidOperationException: 
//  You try to add, remove, or replace a Microsoft.Office.Tools.Ribbon.RibbonControl 
//  after the Ribbon is loaded. 
IList<RibbonControl> Items { get; } 

.
디자이너는 리본을 만들 때 RibbonGroup의 항목을 수정할 수 있어야하지만로드 된 후에는 수정할 수 없습니다.

참고 : 당신이 즉시 RibbonMenu에 버튼을 추가하려면, 그렇지 않으면 당신이로 실행하는 것 (또는 당신이 디자이너 코드에 넣을 수있다) 당신의 RibbonMenu 항목 속성 창에서 True로 동적 설정 다시 같은 예외.

+0

귀하는 틀림없이 정확합니다. 내 요구 사항은 동일한 문서에서 일부 CustomXmlPart를 읽음으로써 그룹을 동적으로 추가하는 것입니다. 따라서 두 가지 문제가 발생합니다. 1 : 리본이로드 된 후에 탭에 그룹을 추가 할 수없는 이유로 인해 InvalidOperationException이 발생합니다. (당신이 말했듯이) 2. 한 가지 방법은 생성자에 로직을 추가하는 것입니다 (일부 블로그에서는 이것을 제안했습니다). 하지만 생성자에서 내 CustomXmlPart를 읽을 수 없습니다. ((. 목표를 달성하기 위해 몇 가지 작업을 수행 할 생각이 있습니까?) – WPFKK

+0

현재 MenuItems를 동적으로 추가하기 위해 마음이 바뀌었지만 그룹을 추가 할 수 있다면 멋지군요. :) – WPFKK