0

我在 WPF 应用程序中制作了切换页面。

public static class Switcher
    {
        public static MainWindow pageSwitcher;

        public static void Switch(UserControl newPage)
        {
            pageSwitcher.Navigate(newPage);
        }
    }

一切正常,我可以在页面之间移动,但我不能转到一页(问题页),只能在一页(添加)。在其他页面我没有任何问题去这个页面。

在添加类中:

private void Button_Click_1(object sender, RoutedEventArgs e)
        {
            Switcher.Switch(new Question());

        }

我收到一个错误:

参数 1:无法从 'Application.Question' 转换为 'System.Windows.Controls.UserControl' 'Application.Switcher.Switch(System.Windows.Controls.UserControl)' 有一些无效参数

从任何其他页面我可以毫无问题地进入问题页面。从添加页面我可以转到任何其他页面,而不仅仅是问题页面。

问题类:

namespace Application.Pages
{

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

    private void Add_pyt_Click(object sender, RoutedEventArgs e)
    {
        Switcher.Switch(new Add());
    }

    private void page1_Click(object sender, RoutedEventArgs e)
    {
        Switcher.Switch(new Page1());
    }
  }
}

还有我的 Page1 课程,当问题页面运行良好时。

public partial class Page1 : UserControl
    {
        public Page1()
        {
            InitializeComponent();

        }

        private void bt_Add_Click(object sender, RoutedEventArgs e)
        {

            Switcher.Switch(new Question());
        }
     }
4

2 回答 2

1

这很可能是因为您的Question课程实际上不是UserControl. 在另一个示例中,您明确传递了一个UserControl.

public static void Switch(UserControl newPage)
{
     pageSwitcher.Navigate(newPage);
}

验证Question该类继承自UserControl.

public class Question : UserControl
{ ... }

如果您实际上是继承自UserControl,请尝试适当地转换它。

Switcher.Switch((UserControl)new Question());
于 2013-02-08T21:08:00.513 回答
0

我解决了。我更改了页面名称,现在可以使用了。可能我有同名的财产,这阻止了它。

于 2013-02-08T21:23:17.240 回答