我有以下课程:
public class MyClass
{
public ObservableCollection<string> MyList { get; set; }
public string MyListTitle { get; set; }
...
我填写如下:
MyClass myClass = new MyClass("Data"); // Populates title
myClass.MyList.Add("Test data 1");
myClass.MyList.Add("Test data 2");
myListView.DataContext = MyClass.MyList;
最后,这是XAML:
<ListView Visibility="Visible" x:Name="myListView" Height="Auto">
<ScrollViewer x:Name="contentScrollView">
<TextBlock x:Name="DataItem" Text="{Binding}" />
</ScrollViewer>
</ListView>
结果(和问题)是我在列表视图中显示一次类名,而不是上面的两个条目。
答案 0 :(得分:4)
首先需要将ItemsSource
的{{1}}属性设置为ListView
ObservableCollection
此外,您需要使用DataTemplate来显示实际项目:
myListView.ItemsSource = myClass.MyList;
答案 1 :(得分:1)
您正在绑定TextBlock,这就是您收到列表的.ToString()的原因。您需要绑定的是列表的ItemsSource,这样ListView会将其项目与列表中的项目绑定。
答案 2 :(得分:0)
可能是这个
myListView.DataContext = MyClass.MyList;
应该成为
myListView.DataContext = myClass.MyList; //note the case of myClass
答案 3 :(得分:0)
应该是
<ListView x:Name="myListView" Height="Auto" ItemsSource="{Binding MyList}">
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock x:Name="DataItem" Text="{Binding}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
和
MyClass myClass = new MyClass();
myClass.MyList = new ObservableCollection<string>();
myClass.MyList.Add("Test data 1");
myClass.MyList.Add("Test data 2");
this.DataContext = myClass;
和
public class MyClass
{
public ObservableCollection<string> MyList { get; set; }
public string MyListTitle { get; set; }
public MyClass()
{
}
}
结果