WPF에서 3 개의 UserControls "사용자 구성", "시스템 구성"& "계정 구성"을 만들었습니다. 이 모든 사용자 컨트롤에는 "저장"& "취소"버튼이 있습니다. 이 버튼을 클릭하면 각 클래스에서 선언되고 정의 된 라우트 된 이벤트가 발생합니다. 저장 버튼을 클릭하면 "ConfigurationSaved"이벤트가 발생합니다. Cancel 버튼에서 & "ConfigurationCancelled"이벤트가 발생합니다.RoutedEvent 이름이 이미 사용되었습니다.
이러한 이벤트가 발생하면 사용자 정의 컨트롤을 호스팅하는 컨테이너가 구성을 저장합니다.
다음 모든 클래스의 라우트 된 이벤트 정의에 대한코드 조각이 될 때 :
AccountConfigurationView :
public partial class AccountConfigurationView : UserControl
{
static AccountConfigurationView()
{
ConfigurationSavedEvent = EventManager.RegisterRoutedEvent("ConfigurationSaved",
RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(AccountConfigurationView));
ConfigurationClosedEvent = EventManager.RegisterRoutedEvent("ConfigurationClosed",
RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(AccountConfigurationView));
}
#region ROUTED_EVENTS_RELATED
public static readonly RoutedEvent ConfigurationSavedEvent;
public static readonly RoutedEvent ConfigurationClosedEvent;
public event RoutedEventHandler ConfigurationSaved
{
add { AddHandler(ConfigurationSavedEvent, value); }
remove { RemoveHandler(ConfigurationSavedEvent, value); }
}
public event RoutedEventHandler ConfigurationClosed
{
add { AddHandler(ConfigurationClosedEvent, value); }
remove { RemoveHandler(ConfigurationClosedEvent, value); }
}
#endregion
}
SystemConfigurationView :
public partial class SystemConfigurationView : UserControl
{
static SystemConfigurationView()
{
ConfigurationSavedEvent = EventManager.RegisterRoutedEvent("ConfigurationSaved",
RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(SystemConfigurationView));
ConfigurationClosedEvent = EventManager.RegisterRoutedEvent("ConfigurationClosed",
RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(SystemConfigurationView));
}
#region ROUTED_EVENTS_RELATED
public static readonly RoutedEvent ConfigurationSavedEvent;
public static readonly RoutedEvent ConfigurationClosedEvent;
public event RoutedEventHandler ConfigurationSaved
{
add { AddHandler(ConfigurationSavedEvent, value); }
remove { RemoveHandler(ConfigurationSavedEvent, value); }
}
public event RoutedEventHandler ConfigurationClosed
{
add { AddHandler(ConfigurationClosedEvent, value); }
remove { RemoveHandler(ConfigurationClosedEvent, value); }
}
#endregion
}
UserConfigurationView :
public partial class UserConfigurationView : UserControl
{
static UserConfigurationView()
{
ConfigurationSavedEvent = EventManager.RegisterRoutedEvent("ConfigurationSaved",
RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(UserConfigurationView));
ConfigurationClosedEvent = EventManager.RegisterRoutedEvent("ConfigurationClosed",
RoutingStrategy.Bubble, typeof(RoutedEventHandler), typeof(UserConfigurationView));
}
#region ROUTED_EVENTS_RELATED
public static readonly RoutedEvent ConfigurationSavedEvent;
public static readonly RoutedEvent ConfigurationClosedEvent;
public event RoutedEventHandler ConfigurationSaved
{
add { AddHandler(ConfigurationSavedEvent, value); }
remove { RemoveHandler(ConfigurationSavedEvent, value); }
}
public event RoutedEventHandler ConfigurationClosed
{
add { AddHandler(ConfigurationClosedEvent, value); }
remove { RemoveHandler(ConfigurationClosedEvent, value); }
}
#endregion
}
내가 메시지와 함께 TypeInitializationException을지고있어 이러한 클래스를 사용하고 있습니다 :
RoutedEvent 이름은 이미 사용 OwnerType 'baskcode.Admin.Controls.AccountConfigurationView'에 대한 'ConfigurationSaved'.
다른 컨트롤을로드하려고하면 같은 예외가 발생합니다. 나는 문제를 바로 잡을 수 없다. 이 점에 대해 제발 도와주세요.
내가 닷넷 버전 4
감사를 사용하고 있습니다.