WPF 앱에 두 개의 창 (로그인 창과 옵션 창)이 있습니다. 두 가지 모두 사용자 이름 및 암호 필드와 동일한 양식과 자격 증명을 제공하는 다른 필드가 있습니다. 예를 들어, txt_userName
TextBox
을 사용할 수 있다는 것을 알고있는 코드를 원하고이를 기반으로 할 수 있습니다. 내가 어떤 종류의 IHaveCredentialsForm
인터페이스를 만들 수 있고 모두 LoginWindow
과 OptionsWindow
을 구현할 수 있다고 생각했지만 시도했을 때 " 'MyNamespace.LoginWindow'에 인터페이스 멤버 'MyNamespace.IHaveCredentialsForm.txt_userName'을 구현하지 않았습니다. 여기에 지금까지 내 인터페이스는 다음과 같습니다동일한 필드가있는 WPF 창에 대해 C#을 DRYing합니다.
interface IHaveCredentialsForm
{
TextBox txt_userName { get; set; }
}
내가 LoginWindow
는 Window
에서 상속 partial
클래스이기 때문에이 오류가 발생했습니다 생각했다. 나는 명확하게 그러한 속성을 정의하지는 않았지만, LoginWindow
의 메서드 내에서 txt_userName
이라는 TextBox
에 확실히 액세스 할 수 있습니다. 그것은 마침내 LoginWindow.xaml에 그 이름을 가진 TextBox
이있는 것으로 나타났습니다.
어떻게하면 건조시킬 수 있습니까? 나는 이미 사용자 이름, 패스워드 등을 위해 string
값을 가진 메소드를 가지고 있지만, 동일한 메소드에 동일한 인수 인 txt_userName.Text, pwb_password.Password, ...
을 전달하는 두 개의 다른 클래스를 가지고있는 것처럼 보입니다.
두 개의 다른 창 사이에서 XAML (자격 증명 양식)을 어떻게 공유 할 수 있습니까?
굉장! 나는 사용자 컨트롤 (WPF를 사용하여 최근에 시작)에 익숙하지 않았습니다. 나는 당신의 제안을 이행했다. 내 XAML에 도움이됩니다. –
추가 리팩터링이 끝나면 .xaml이 있으므로 C#도 도움이됩니다.cs 클래스 내 사용자 정의 컨트롤은 내 'txt_userName'필드 등의 작업을 수행합니다. –