0

WPFアプリケーションでページを切り替えています。

public static class Switcher
    {
        public static MainWindow pageSwitcher;

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

そして、すべてがうまく機能し、ページ間を移動できますが、1ページ(質問ページ)に移動できず、1ページ(追加)だけに移動できます。他のページでは、このページに移動するのに問題はありません。

Addクラスの場合:

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 に答える