C# 数据绑定可观察的字符串集合

C# 数据绑定可观察的字符串集合,c#,xaml,windows-8,windows-runtime,.net-4.5,C#,Xaml,Windows 8,Windows Runtime,.net 4.5,我有以下课程: public class MyClass { public ObservableCollection<string> MyList { get; set; } public string MyListTitle { get; set; } ... 最后,这里是XAML: <ListView Visibility="Visible" x:Name="myListView" Height="Auto"> <ScrollViewe

我有以下课程:

public class MyClass
{
    public ObservableCollection<string> MyList { get; set; }
    public string MyListTitle { get; set; }
...
最后,这里是XAML:

<ListView Visibility="Visible" x:Name="myListView" Height="Auto">
    <ScrollViewer x:Name="contentScrollView">
        <TextBlock x:Name="DataItem" Text="{Binding}" />                                
    </ScrollViewer>
</ListView>


结果(也是问题)是,我在listview中只显示了一次类名,而不是上面的两个条目。

您正在绑定TextBlock,这就是您收到列表的.ToString()的原因。您需要绑定的是列表的文本块,这样ListView会将其项目与列表中的项目绑定。

您正在绑定文本块,这就是您收到列表的.ToString()的原因。您需要绑定的是列表的名称,这样ListView就可以将其项目与列表中的项目绑定起来。

可能是这一个

myListView.DataContext = MyClass.MyList;
将成为

myListView.DataContext = myClass.MyList; //note the case of myClass
可能是这个

myListView.DataContext = MyClass.MyList;
将成为

myListView.DataContext = myClass.MyList; //note the case of myClass

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

myListView.ItemsSource = myClass.MyList;
此外,您还需要使用来显示实际项目:

<ListView.ItemTemplate>
 <DataTemplate>
   <TextBlock x:Name="DataItem" Text="{Binding}" /> 
 </DataTemplate>
</ListView.ItemTemplate>

您首先需要将
列表视图
项目资源
属性设置为您的
可观察集合

myListView.ItemsSource = myClass.MyList;
此外,您还需要使用来显示实际项目:

<ListView.ItemTemplate>
 <DataTemplate>
   <TextBlock x:Name="DataItem" Text="{Binding}" /> 
 </DataTemplate>
</ListView.ItemTemplate>

应该是

<ListView x:Name="myListView" Height="Auto" ItemsSource="{Binding MyList}">            
        <ListView.ItemTemplate>
            <DataTemplate>
                <TextBlock x:Name="DataItem" Text="{Binding}" />
            </DataTemplate>
        </ListView.ItemTemplate>            
    </ListView>

MyClass MyClass=新的MyClass();
myClass.MyList=新的ObservableCollection();
myClass.MyList.Add(“测试数据1”);
myClass.MyList.Add(“测试数据2”);
this.DataContext=myClass;

公共类MyClass
{
公共ObservableCollection MyList{get;set;}
公共字符串MyListTitle{get;set;}
公共MyClass()
{
}
}
结果

应该是

<ListView x:Name="myListView" Height="Auto" ItemsSource="{Binding MyList}">            
        <ListView.ItemTemplate>
            <DataTemplate>
                <TextBlock x:Name="DataItem" Text="{Binding}" />
            </DataTemplate>
        </ListView.ItemTemplate>            
    </ListView>

MyClass MyClass=新的MyClass();
myClass.MyList=新的ObservableCollection();
myClass.MyList.Add(“测试数据1”);
myClass.MyList.Add(“测试数据2”);
this.DataContext=myClass;

公共类MyClass
{
公共ObservableCollection MyList{get;set;}
公共字符串MyListTitle{get;set;}
公共MyClass()
{
}
}
结果


所以你只得到
测试数据1
否-我得到MyClass的类名(一次),所以你只得到
测试数据1
否-我得到MyClass的类名(一次)