1

我有以下课程:

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>

结果(和问题)是我在列表视图中显示了一次类名,而不是上面的两个条目。

4

4 回答 4

6

您首先需要将ItemsSource属性设置ListView为您的ObservableCollection

myListView.ItemsSource = myClass.MyList;

此外,您需要使用DataTemplate来显示实际项目:

<ListView.ItemTemplate>
 <DataTemplate>
   <TextBlock x:Name="DataItem" Text="{Binding}" /> 
 </DataTemplate>
</ListView.ItemTemplate>
于 2012-09-14T16:23:56.363 回答
1

You're binding the TextBlock that's why you receive the .ToString() of the list. What you need to bind is the ItemsSource of your list, that way the ListView will bind its items with the ones inside your list.

于 2012-09-14T16:19:58.797 回答
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()
    {

    }
}

结果

在此处输入图像描述

于 2012-09-14T16:32:55.510 回答
0

可能是这个

myListView.DataContext = MyClass.MyList;

将成为

myListView.DataContext = myClass.MyList; //note the case of myClass
于 2012-09-14T16:22:05.360 回答