我已经研究了很长一段时间,我找不到明确指导我如何在silverlight中做一个简单列表框的教程。我只想向上和向下滚动一个数据列表(让我们说一下城市的名称,现在让我们说明确地初始化了)。我尝试在其中使用文本框对一个列表框进行十进制复用,这似乎无法工作,因为文本框之间的间距很大。我怎么去解决这个问题?
答案 0 :(得分:2)
在xaml页面中创建一个列表框
<ListBox Margin="0,0,0,0" Height="550" Foreground="White" Name="lbSearchList">
<ListBox.ItemTemplate>
<DataTemplate>
<Border BorderThickness="2" Margin="10,0,10,10" Width="460" BorderBrush="#FF404040">
<TextBlock FontSize="22" Foreground="Black" TextTrimming="WordEllipsis" Text="{Binding ClientName}"/>
</Border>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
制作像这样的客户类
public class Client
{
public string ClientName{get;set;}
}
现在位于listbox所在页面的代码中
制作全局变量
List<Client> listClient=new List<Client>();
并在页面构造函数中
listClient.Add(new Client {ClientName="A"});
listClient.Add(new Client {ClientName="B"});
listClient.Add(new Client {ClientName="C"});
lbSearchList.ItemsSource = listClient;
我希望它有效
答案 1 :(得分:1)
使用ListBox的最基本方法:
<ListBox Margin="0,0,0,0" Name="lstCountries" >
<ListBox.Items>
<ListBoxItem Content="Brazil"/>
<ListBoxItem Content="China"/>
<ListBoxItem Content="India"/>
<ListBoxItem Content="Switzerland"/>
<ListBoxItem Content="Austria"/>
</ListBox.Items>
</ListBox>
从代码中向ListBox添加项目:
lstCountries.Items.Add("Indonesia");
lstCountries.Items.Add("Thailand");
lstCountries.Items.Add("Australia");
进一步的技术将需要定义ItemTemplate(正如您在@Aman的答案中所见),使用DataBinding等。教程可在许多网站/博客上在线获得。