我知道这已被多次问过不同的方式,但我只是没有得到它。为什么我在列表框中看不到我的测试字符串?
的.cs
public partial class Window1 : Window
{
public ObservableCollection<string> myList = new ObservableCollection<string>();
public Window1()
{
InitializeComponent();
myList.Add("test1");
myList.Add("test2");
}
}
的.xaml
<Window x:Class="WpfApplication.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300"
x:Name="thisWindow">
<Grid>
<ListBox Name="MyListBox" ItemsSource="{Binding myList, ElementName=thisWindow}"/>
</Grid>
</Window>
答案 0 :(得分:4)
因为你的“myList”是一个字段。 WPF绑定仅适用于属性。将您的列表声明更改为:
private ObservableCollection<string> _myList = new ObservableCollection<string>();
public ObservableCollection<string> myList { get { return _myList; } }
答案 1 :(得分:1)
以这种方式尝试:
public Window1()
{
InitializeComponent();
myList.Add("test1");
myList.Add("test2");
this.DataContext = myList;
}
然后在XAML中:
<ListBox Name="MyListBox" ItemsSource="{Binding}"/>