현재 사용하고 싶은 GUI 응용 프로그램 (윈도우 폼)의 백엔드 엔진으로 사용할 C# dll을 작성하고 있습니다. 엔진은 미리 정의 된 몇 가지 상태 중 하나에있을 수 있습니다. Loading, Idle, Working 등. 배경 작업자가 제어합니다. 이 dll을 사용하는 GUI 응용 프로그램이 작업을 수행하고 엔진 내 속성, 특히 엔진이있는 현재 상태에 컨트롤 속성을 바인딩 할 수있게하려고합니다. 예를 들어 엔진을 사용하는 응용 프로그램이 엔진 작동 여부. 다음과 같이 내가 엔진 내에서 읽기 전용 속성을 만든이 작업을 수행하려면바인딩 버튼. C# dll의 속성에 사용 가능
국가는 모든 가능한 상태의 열거하고 EngineState 현재 상태public Class Engine
{
// Make the class a singleton
private static Engine instance;
public static Engine Instance
{
get
{
if (instance == null)
instance = new Engine();
return instance;
}
}
// ... Class code altering the engines current state
public bool Property IsActive
{
get
{
return (EngineState != State.Idle);
}
}
}
. 이 속성을 테스트하려면 엔진이 활성 상태 인 경우 단추를 사용 가능하게하려는 빠른 Windows 양식 응용 프로그램을 작성했습니다.
public Class TestApp
{
Engine MyEngine = Engine.Instance;
TestApp
{
Button_DoAction.DataBindings.Add("Enabled", MyEngine, "IsActive");
}
// ... Button handlers etc.
}
이 바인딩
은 DLL 내 재산이 isActive 변화, 즉 엔진 액티브 모드에서 아이들 모드가되면 때 응용 프로그램이 처음로드하지만 작동하는 것 같다의 : 나는 Enabled 속성과 같이 바인딩 해봤이 작업을 수행하려면 단추의 Enabled 속성은 변경되지 않습니다.그래서 내가하려는 일이 가능할 지 궁금합니다. 엔진이 싱글 톤이며 외부 DLL에 기록된다는 사실은 다른 것을 의미합니까? 모든 의견은 큰 도움이 될 것입니다.
미리 감사드립니다.
죄송합니다. 아니면이 WPF입니까? – Jodrell