我正在開發Windows Phone 7應用程序。將列表框綁定到表
我有一個表有以下欄目:
ID | Name | Description
我想在ListBox顯示所有名稱表。我想確定用戶何時選擇一行並獲取其ID。
如何將ID存儲在ListBoxItem中?我該如何檢索它?
我正在開發Windows Phone 7應用程序。將列表框綁定到表
我有一個表有以下欄目:
ID | Name | Description
我想在ListBox顯示所有名稱表。我想確定用戶何時選擇一行並獲取其ID。
如何將ID存儲在ListBoxItem中?我該如何檢索它?
假設你有每一行相應的數據對象(我們稱之爲MyDataRow
現在),你的ListBox的的ItemsSource屬性設置爲您MyDataRow
實例的集合。然後,在您的列表框中,將DisplayMemberPath設置爲名稱。這將使ListBox綁定到您的實際數據對象,但實際顯示名稱屬性的值。
當你處理的SelectionChanged事件的SelectedItem屬性的值將是你MyDataRow
類的一個實例,所以你可以使用這樣的代碼獲得ID:
var id = ((MyDataRow)_myListBox.SelectedItem).ID;
使用綁定是最好的方法。見我的代碼如下:
<ListBox x:Name="List1">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding ID}" />
<TextBlock Text="{Binding Name}" Grid.Column="1" />
<TextBlock Text="{Binding Description}" Grid.Column="2" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<TextBlock Grid.Row="2" Text="{Binding ElementName=List1,Path=SelectedItem.ID}" />
// CSHARP代碼:
public partial class MainPage : PhoneApplicationPage
{
// Constructor
public MainPage()
{
InitializeComponent();
Collection<Entity> source = new Collection<Entity> {
new Entity{ID = "1", Name = "Name1", Description = "This is Name1"},
new Entity{ID = "2", Name = "Name2", Description = "This is Name2"},
new Entity{ID = "3", Name = "Name3", Description = "This is Name3"},
};
List1.ItemsSource = source;
}
}
public class Entity
{
public string ID { get; set; }
public string Name { get; set; }
public string Description { get; set; }
}
和..我在哪裏可以學習做呢?我只有一個用XML文件創建的數據源。 – VansFannel 2011-04-15 14:59:59
這應該有所幫助:http://www.windowsphonegeek.com/articles/data-binding-the-wp7-listpicker-to-xml-data-using-expressionblend-4 – 2011-04-15 15:04:22
謝謝,它的工作。但我還有一個問題。在該表上我有另一列來表示語言(en,es,...)如何設置ItemsSource的where子句?或者我可以做一個看法? – VansFannel 2011-04-15 15:31:46