2017-09-26 7 views
1

안녕하세요, 나는 UserControl에서 내 메인 창에서 목록을 사용할 수 있어야합니다. 나는 그것을 편집하고 다양한 Usercontrols에서 읽을 수 있어야합니다.WPF- 내가 어떻게 선언하고 내 MainWindow Usercontrol에 기입 목록을 사용할 수 있습니까?

MainWindow를 :

public partial class MainWindow : Window 
{ 
    public List<Termin> termine = new List<Termin>(); 

    public MainWindow() 
    { 
     InitializeComponent(); 
    } 
} 

UserControl을 :

public partial class KalenderAnsicht : UserControl 
{ 
    public KalenderAnsicht() 
    { 
     InitializeComponent(); 
    } 

    private void SomeMethod() 
    { 
     //i need to be able to use the list here 
    } 

} 
+0

매개 변수로 메서드에 목록을 전달하십시오. – Kevin

답변

1

당신은 MainWindow 어떤 식 으로든에 대한 참조를 얻을 필요가있다. 이 작업을 수행하는 가장 쉬운 방법은 Application.Current.Windows 속성을 사용하는 것이 아마도 : 또한 만드는 고려할 수

private void SomeMethod() 
{ 
    var mw = Application.Current.Windows.OfType<MainWindow>().FirstOrDefault(); 
    List<Termin> termine = mw.termine; 
    //... 
} 

terminestatic : 그것은 바로의 인스턴스에 대한 참조없이

public partial class MainWindow : Window 
{ 
    public static List<Termin> termine = new List<Termin>(); 

    public MainWindow() 
    { 
     InitializeComponent(); 
    } 
} 

... 액세스 MainWindow :

private void SomeMethod() 
{ 
    List<Termin> termine = MainWindow.termine; 
    //... 
} 
+0

답해 주셔서 감사합니다. 오류가 발생했습니다. 암시 적으로 입력 한 변수에 메서드 그룹을 할당 할 수 없습니다. 다른 사용자 정의 컨트롤에서 편집 할 수 있어야하므로 정적으로 설정할 수 없습니다. – Samuel

+0

계속 정적으로 만들 수 있습니다 ... 어디에서 오류가 발생합니까? – mm8

+0

여기에 오류가 발생합니다. var mw = Application.Current.Windows.OfType () .FirstOrDefault; 정적으로 만들면 usercontrol에서 목록에 새 항목을 추가 할 수 있습니까? – Samuel