3
GUID 유형의 종속성 속성이있는 사용자 지정 활동이 있다고 가정 해 봅니다.워크 플로 활동
내 맞춤 디자이너에서 선택할 수있는 가능한 값으로 콤보 박스 (또는 내 자신의 usercontrol)처럼 보이기를 원합니다 (값은 데이터베이스에서 가져와야 함).
이것이 가능합니까?
GUID 유형의 종속성 속성이있는 사용자 지정 활동이 있다고 가정 해 봅니다.워크 플로 활동
내 맞춤 디자이너에서 선택할 수있는 가능한 값으로 콤보 박스 (또는 내 자신의 usercontrol)처럼 보이기를 원합니다 (값은 데이터베이스에서 가져와야 함).
이것이 가능합니까?
UITypeEditor
을 만들어야합니다. 활동에서 귀하의 재산에
public class MyCustomEditor : UITypeEditor
{
public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context)
{
return UITypeEditorEditStyle.DropDown;
}
public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider)
{
var editorService = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService));
var list = new ListBox();
// Your code here to populate the list box with your items
EventHandler onclick = (sender, e) => {
editiorService.CloseDropDown();
};
list.Click += onclick;
myEditorService.DropDownControl(list);
list.Click -= onclick;
return (list.SelectedItem != null) ? list.SelectedItem : Guid.Empty;
}
}
: - - : 다음은 combox 편집기의 템플릿입니다
[Editor(typeof(MyCustomEditor), typeof(UITypeEditor)]
public Guid MyGuidValue
{
get { return (Guid)GetValue(MyGuidValueProperty); }
set { SetValue(MyGuidValueProperty, value); }
}
Editor
속성 이 속성.GetEditStyle
메서드는 속성 표에 속성 값에 드롭 다운 단추를 표시합니다.EditValue
메서드를 호출합니다.DropDownControl
메서드로 드롭 다운을 표시하는 데 사용됩니다.DropDownControl
메서드는 편집기 서비스 CloseDropDown
메서드가 호출 될 때까지 차단됩니다.
감사합니다. 안소니, 나는 그것을 시도 할 것이다. 목록 체크 박스가 가능한지 알고 계십니까? 아니면 내 사용자 지정 컨트롤? – pdiddy
DropDownControl에 자신이 원하는 컨트롤을 포함하여 사용자가 원하는대로 컨트롤을 전달할 수 있습니다. – AnthonyWJones