2

今はわからないという問題があります。私はWindows-8スタイルのアプリを開発しようとしていますが、この機能の実装に行き詰まっています。

ListBoxとButton(たとえばaddButton )を含むMainWindowがあります。

ボタンをクリックすると、新しいページに移動します。たとえば、this.Frame.Navigate(typeof(AddCustomerPage));を使用してAddCustomerPageとしましょう。

AddCustomerPageには1つのtextBoxと1つのボタンがあります(doneButtonとしましょう。ボタンをクリックすると、textBoxの文字列が前のページのListBoxに追加されます。

これが私の現在の機能です。1。MainWindowが作​​成されます。

  1. addButtonをクリックします

  2. AddCustomerページが作成されます。MainWindowが破壊されました(問題)。

  3. doneButtonをクリックします

  4. MainWindowオブジェクトは、1つのアイテムを持つListBoxで作成されます。

  5. 追加プロセスを繰り返します。常に1つのアイテムを含むリストボックスを含むメインウィンドウを取得します。

助けてくれてありがとう。コードは次のとおりです。

public sealed partial class MainPage : Page
{
    public MainPage()
    {
        this.InitializeComponent();

        this.brainPageController = new PageController();

        // add items from the List<String> to the listBox
        listGoals.ItemsSource = brainPageController.GetListGoals();
    }

    protected override void OnNavigatedTo(NavigationEventArgs e)
    {
        var parameter = e.Parameter as String;
        // a simple controller that adds a string to a List<string>
        brainPageController.AddGoal(parameter);
    }

    private void addButton_Click(object sender, RoutedEventArgs e)
    {
        this.Frame.Navigate(typeof (GoalsInfo));
    }

    // VARIABLES DECLARATION
    private PageController brainPageController;
}

public sealed partial class GoalsInfo : WinGoalsWIP.Common.LayoutAwarePage
{
    public GoalsInfo()
    {
        this.InitializeComponent();
        this.brainPageController = new PageController();
    }

    protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState)
    {
    }
    protected override void SaveState(Dictionary<String, Object> pageState)
    {
    }

    private void Button_Click_1(object sender, RoutedEventArgs e)
    {
        brainPageController.AddGoal(nameTextBox.Text);

        this.Frame.Navigate(typeof(MainPage), nameTextBox.Text);
    }
    // VARIABLES DECLARATION
    PageController brainPageController;
}
4

2 に答える 2

12
Frame.Navigate(typeof(MainPage), nameTextBox.Text);

次に、OnNavigatedToでMainPage

protected override void OnNavigatedTo(NavigationEventArgs e)
{
    string text = e.Parameter as string;
    if (text != null) {
        //Do your stuff
    }
}

MainPageをキャッシュする場合は、これを実行します

public MainPage()
    {
        this.InitializeComponent();
        //This will cache your page and every time you navigate to this 
        //page a new page will not be created.
        this.NavigationCacheMode = Windows.UI.Xaml.Navigation.NavigationCacheMode.Enabled;

        this.brainPageController = new PageController();

        // add items from the List<String> to the listBox
        listGoals.ItemsSource = brainPageController.GetListGoals();
    }
于 2012-12-15T12:26:44.610 に答える
1

これを試してみてください私はそれが役立つことを願っています

クイックスタート:ページ間を移動する

于 2012-12-15T10:59:47.357 に答える