Windows Phone ListView 绑定
Windows Phone ListView Binding
我正在尝试创建项目的 ListView 并能够删除它们。这是我的代码。我无法获取要显示的项目列表。我没有找到绑定 ListViews 的简单示例,因此我可以理解确切的概念。你能告诉我我做错了什么吗?
PS。 myListOfItems 是一个包含字符串的列表。该项目是 WP 8.1 WinRT。
public class MedClass
{
public string medName { get; set; }
}
public class MedClassRoot
{
public List<MedClass> medNames { get; set; }
}
public sealed partial class MedSavedPage : Page
{
protected override void OnNavigatedTo(NavigationEventArgs e)
{
MedClassRoot root = new MedClassRoot();
root.medNames = new List<MedClass>();
foreach (var element in myListOfItems)
{
root.medNames.Add(new MedClass {medName = element});
}
MedSaved_ListView.DataContext = root;
//MedSaved_ListView.ItemsSource = root;
}
<ListView DataContext="{Binding root}"
x:Name="MedSaved_ListView"
HorizontalAlignment="Left"
Height="507"
Margin="10,73,0,0"
VerticalAlignment="Top"
Width="380" Tapped="MedSaved_ListView_Tapped">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Height="30">
<TextBlock Text="{Binding medName}" FontSize="16"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
这是让它工作的最快方法:
暂时从 ListView 中删除 DataContext 部分。
只需将 ItemsSource 设置为您的项目列表(注释掉 MedSaved_ListView.DataContext = root 的部分,取消注释并更改下一行)
MedSaved_ListView.ItemsSource = root.medNames;
说明 - ListView ItemsSource 是用于生成 ItemsControl 内容的集合。您需要将其设置为某种 IEnumerable。您的 medNames 是实现 IEnumerable 的 List 类型,因此您需要为其设置 ItemsSource。
我正在尝试创建项目的 ListView 并能够删除它们。这是我的代码。我无法获取要显示的项目列表。我没有找到绑定 ListViews 的简单示例,因此我可以理解确切的概念。你能告诉我我做错了什么吗?
PS。 myListOfItems 是一个包含字符串的列表。该项目是 WP 8.1 WinRT。
public class MedClass
{
public string medName { get; set; }
}
public class MedClassRoot
{
public List<MedClass> medNames { get; set; }
}
public sealed partial class MedSavedPage : Page
{
protected override void OnNavigatedTo(NavigationEventArgs e)
{
MedClassRoot root = new MedClassRoot();
root.medNames = new List<MedClass>();
foreach (var element in myListOfItems)
{
root.medNames.Add(new MedClass {medName = element});
}
MedSaved_ListView.DataContext = root;
//MedSaved_ListView.ItemsSource = root;
}
<ListView DataContext="{Binding root}"
x:Name="MedSaved_ListView"
HorizontalAlignment="Left"
Height="507"
Margin="10,73,0,0"
VerticalAlignment="Top"
Width="380" Tapped="MedSaved_ListView_Tapped">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Height="30">
<TextBlock Text="{Binding medName}" FontSize="16"/>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
这是让它工作的最快方法:
暂时从 ListView 中删除 DataContext 部分。
只需将 ItemsSource 设置为您的项目列表(注释掉 MedSaved_ListView.DataContext = root 的部分,取消注释并更改下一行)
MedSaved_ListView.ItemsSource = root.medNames;
说明 - ListView ItemsSource 是用于生成 ItemsControl 内容的集合。您需要将其设置为某种 IEnumerable。您的 medNames 是实现 IEnumerable 的 List 类型,因此您需要为其设置 ItemsSource。