![](/img/trans.png)
[英]How to dynamically add items to ListBox in Windows Phone 7/C#
[英]Dynamically Add Clickable List Items to Windows Phone ListBox
我知道如果有一個listBox,可以輕松地向它添加項目,如下所示:
ListBox myList = new ListBox();
myList.Items.Add("Added Item 1");
myList.Items.Add("Added Item 2");
myList.Items.Add("Added Item 3");
我最初不知道將有多少項添加到列表中,所以我不像我在這里那樣添加靜態內容,我遍歷for循環並以這種方式添加項目。 繼續...
我怎樣才能將項目添加到列表框中,還可以使每個項目都可單擊。 例如,假設有一個包含12個GUID的數組,並為每個guid項添加到listBox .ie
myList.Items.Add(guidArray[i]);
然后根據選擇的guid做出不同的反應?
另外一件事,一個樣式listBox項目怎么樣? 除了他們只是出現在彼此堆疊的無聊的字符串?
提前致謝!
假設您有一組GUID。
var guids = new List<Guid>();
for (var i = 0; i < 12; i++)
{
guids.Add(Guid.NewGuid());
}
然后,您可以將此集合綁定到ListBox控件。
myList.ItemsSource = guids;
ListBox控件將根據guids集合的內容自動更新。
要處理ListBox中項目的click事件,您需要處理控件的SelectionChanged事件。
連接事件處理程序。
<ListBox Name="MyList"
SelectionChanged="MyList_SelectionChanged">
...
</ListBox>
現在,您可以在事件處理程序中編寫必要的代碼:
private void MyList_SelectionChanged(object sender,
System.Windows.Controls.SelectionChangedEventArgs e)
{
// Find out which item was clicked
if (e.AddedItems.Count > 0)
{
var myGuid = e.AddedItems[0] as Guid;
if (myGuid == null)
return;
// ...
}
}
設置ListBox中的每個項目的樣式。 那是另一個問題。 首先將ListBox綁定到數據源(在本例中為GUID集合)。
然后在XAML中,您可以自由設計ListBox的內容。 使用ListBox的ItemTemplate和DateTemplate。 在模板中,您可以指定ListBox應為每個項目呈現的內容。
讓我們為每個項目在1x1網格中渲染一個TextBlock。 只需將TextBlock的Text屬性綁定到ListBox項的屬性之一即可。
<ListBox Name="MyList"
SelectionChanged="MyList_SelectionChanged">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<TextBlock Grid.Column="1" Text="{Binding ...}" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.