我在WPF应用程序中创建了切换页面。
public static class Switcher
{
public static MainWindow pageSwitcher;
public static void Switch(UserControl newPage)
{
pageSwitcher.Navigate(newPage);
}
}
一切正常,我可以在页面之间移动,但我不能只在一页(添加)中转到一页(问题页面)。在其他页面中,我没有任何问题可以访问此页面。
在Add class中:
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());
}
}
答案 0 :(得分: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());
答案 1 :(得分:0)
我解决了。我改变了页面名称,现在它的工作。可能我有相同名称的财产,这阻止了它。