[英]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.