0
我有一個有趣的問題。在我的Main.cs代碼中,我有一個方法用於更改UserControl我的MainWindow顯示。下面的代碼:無法更改WPF中的用戶控件
public void NextPage()
{
if (numberUserControl < 4)
{
numberUserControl++;
SelectUserControl();
}
}
private void SelectUserControl()
{
switch (numberUserControl)
{
case 1:
this.contentControl.Content = new UserControls.ServersListControl();
break;
case 2:
this.contentControl.Content = new UserControls.DepartmentsListControl();
break;
default:
MessageBox.Show("lol");
break;
}
}
(它沒有完成,這就是爲什麼我的默認顯示笑)
當我調用該方法從下一頁我的主窗口,它的作品完美流暢。但是,當我使用此代碼:
public void Button_Click(object sender, RoutedEventArgs e)
{
MainWindow main = new MainWindow();
main.NextPage(/*data*/);
}
UserControl不會更改!我使用調試器進行了檢查,代碼在每個塊中傳遞,即使在DepartmentsListControl構造函數中,但是顯示的UserControl不會更改......而且我真的不明白爲什麼!
請幫忙! :)
是的,我現在明白了這個問題,但按鈕是不是在主窗口,他在另一個用戶控制,這就是爲什麼我創建的新的實例,以便能夠訪問該方法! – T2o
在這種情況下,您需要將當前MainWindow實例的引用傳遞給用戶控件。正如你發現的那樣,創建一個新的實例是行不通的。你如何將用戶控件添加到'MainWindow'? –
我通過調用'this.contentControl.Content = new UserControls.ServersListControl(ref this)'在MainWindow中添加用戶控件;' 如何添加MainWindow的引用,它是隻讀的? – T2o