[Silverlight] 取得ChildWindows 的值 (2)
2010/10/26
延續上一篇 取得 ChildWindows 的值 (1)
現在這方式會比較立即改變MainPage的值…
這方法Code 比較簡單..
但是缺點是限定呼叫的物件…
一樣先介紹一下畫面配置..
btnGet1 點下之後會跳出ChildWindow 選取項目之後..
會即時的改變lblResult1 的內容..
ChildWindow 配置如下..
ChildWindow C# Code :
using System.Windows; using System.Windows.Controls; namespace GetChildWindowsValue { public partial class ChildWindow1 : ChildWindow { private MainPage _Father; //在 Ctor的時候 放信MainPage 物件 public ChildWindow1(MainPage mainPage) { InitializeComponent(); //用_Father抓住 傳入的MainPage 物件 _Father = mainPage; } //加入三個測試項目 private void LayoutRoot_Loaded(object sender, RoutedEventArgs e) { this.lstMain.Items.Add("當麻許"); this.lstMain.Items.Add("六月羊"); this.lstMain.Items.Add("Dracula"); } private void lstMain_SelectionChanged(object sender, SelectionChangedEventArgs e) { //在 lstMain 的項目選擇被改變時 直接去更改 MainPage 的lblResult1.Content //所以可以立即改變MainPage 的lblResult1的Content _Father.lblResult1.Content = this.lstMain.SelectedValue.ToString(); } } }
有沒有發現.. 在 ChildWindow1 的 constructor 中必須要傳入MainPage ..
這樣之後就可以直接改變父親(MainPage) 裡面的物件…
所以在 btnGet1 的Click事件為:
private void btnGet1_Click(object sender, RoutedEventArgs e) { //將MinaPage 指標傳入 ChildWindow1 childWindow1 = new ChildWindow1(this); childWindow1.Show(); }
這樣跟方法一的不同方法是..
可以直接控制呼叫視窗裡面的物件或是function..
但是這樣做..會有一些限制..
這樣就等於限定了呼叫ChildWindow 的資格…
所以有好有壞…
看需求搂..
讚一下:
下載:
範例:
可以看一下你在變換選取值的時候MainPage 的Label 就已經更改了
標籤:
Silverlight
|
This entry was posted on 下午2:42
and is filed under
Silverlight
.
You can follow any responses to this entry through
the RSS 2.0 feed.
You can leave a response,
or trackback from your own site.
訂閱:
張貼留言 (Atom)
0 意見:
張貼留言