台灣最大程式設計社群網站
線上人數
2663
 
會員總數:243651
討論主題:188247
歡迎您免費加入會員
討論區列表 >> Windows Phone APP >> ListBox產生的資料如何控制?
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
ListBox產生的資料如何控制?
價值 : 100 QP  點閱數:3242 回應數:4

樓主

joseph
門外漢
0 19
918 32
發送站內信

請各位前輩幫幫我這個新手,這是我困擾很久的問題,問題如下,
以下是我寫的xmal,假設ListBox有N筆資料。
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Vname}" />
<Button Content="查詢" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
那是否有辦法在cs程式區,設定控制按下「查詢」按鈕後,顯示出Text元件的資料呢?
先說聲謝謝了。




本篇文章發表於2012-01-05 23:24
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
回應

jonnyhuang
檢舉此回應
直接抓取你的資料來源物件的Vname值就可以,
當你透過資料繫結(Binding)塞資料,也就是將集合物件指派給ListBox的ItemsSource或是DataContext屬性時,
{若是給DataContext在XAML裡面要加 ItemsSource="{Binding}"}
ListBox裡面的ListBoxItem都可以還原成資料物件,
比如說ListBox1.ItemsSource=List<A>,
那你可以用ListBoxItem as A 還原回A物件,
再去取A.Vname就可以抓到你要的屬性值,
如果要抓選取項目的值那就用ListBox1.SelectedItem as A既可。
本篇文章回覆於2012-01-06 14:19
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

joseph
檢舉此回應
jonnyhuang 您好,感謝您的回應,但我是實是太新手了,市面上的wp7書我都買了,但就是找不到ListBox相
關動態的控制,若您方便的話,可否給個範例嗎?

<ListBox HorizontalAlignment="Left" Margin="24,432,0,29" Name="listBox1" Width="429">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Vname}" />
<Button Content="查詢" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>日

以上的xmal我就只要按上「查詢」按鈕後,彈出 MessageBox.Show( TextBlock Text 的欄位資料 ),
這樣就行了。
本篇文章回覆於2012-01-07 02:34
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
最有價值解答

jonnyhuang
檢舉此回應
主要還是要知道你是指派給ListBox的"N筆資料"是甚麼物件,
因為你並沒有列出那段程式,所以很難呈現範例,
我只能假設你的資料型別是Class myClass,裡面有Vname屬性,

因為是多筆資料所以你指派給ListBox的應該是Class myClass的集合物件,
比如說是Arry ArryList List ObservableCollection,
這邊假設是用List,也就是你程式應該會有

這時候如果你要顯示被選取項目中的Vname那在Botton的Click事件內撰寫

PS:
其實WP7開發跟一般Silverlight幾乎差不多,
就是多了一些硬體控制,以及要注意從休眠模式或墓碑模式返回時的資料回復,
主要的技術跟觀念都是一樣的,你可以參考抓取listbox中的某筆值
基本上是差不多,因為他給LisBox的資料就是ListBoxItem所以我們將SelectedItem轉型回ListBoxItem,
也就是可以將SelectedItem直接轉成原始的"資料"。
本篇文章回覆於2012-01-07 20:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

joseph
檢舉此回應
jonnyhuang 我用你的方法,試出來,
實在太感謝你了。
本篇文章回覆於2012-01-08 16:03
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.