~ 開発者の憂鬱 ~


2010年7月31日(土) 18:29 JST

[WPF] ブラウザアプリでの状態遷移

Application.Current.Properties["xxxx"];

を使おうが一番の答えでしょうかね。
セッションと同じ感覚で使えば、ASP.NET になれた人でも違和感なく使えると思います。

例)本文参照 例) Page1 と Page2 でデータ渡し

Page1 にボタンを一個貼り付けて、そこのClickイベントで
Application.Current.Properties["Name"] = "Makoto Watanabe";
//
var mPage = new Page2
{
};
NavigationService.Navigate(mPage);
こんな感じでコーディングを行う。

Page2 には、ラベルを一個貼り付けて、遷移されてきたデータを表示する。
Page2 loaded をフックして
private void Page_Loaded(object sender, RoutedEventArgs e)
{
label1.Content = Application.Current.Properties["Name"];
}

とやればデータの受け渡しが可能になる。
カスタムコントロールを作成して、カスタムコントロールでの制御も可能だと思う。

Page1 で
private CustomControl1 _CustomControl1;
Page1 のコンストラクタで
if (null == _CustomControl1)
{
_CustomControl1 = new CustomControl1();
}
を宣言して...
var mPage = new Page2
{
CustomControl1 = _CustomControl1
};
で渡してあげる。

Page2 では受け口を作成する。
private CustomControl1 _CustomControl1;
public CustomControl1 CustomControl1
{
get { return _CustomControl1; }
set { _CustomControl1 = value; }
}
とでも宣言してあげればOK
後は、Page2 のコンストラクタでも
if (null == _CustomControl1)
{
_CustomControl1 = new CustomControl1();
}
とでもしてあげれば少しだけ幸せになれると思う。

トラックバック

このエントリのトラックバックURL: http://www.dotnet.jp/trackback.php/20091216122503325

この記事にはトラックバック・コメントがありません。
[WPF] ブラウザアプリでの状態遷移 | 0 件のコメント | アカウント登録
サイト管理者はコメントに関する責任を負いません。