【问题标题】:ObservableCollection -> ListboxObservableCollection -> 列表框
【发布时间】:2009-11-02 08:16:19
【问题描述】:

我知道这个问题已经被问了好几次了,但我就是不明白。为什么我在列表框中看不到我的测试字符串?

.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>

【问题讨论】:

    标签: listbox observablecollection


    【解决方案1】:

    因为您的“myList”是一个字段。 WPF 绑定仅适用于属性。将您的列表声明更改为:

    private ObservableCollection<string> _myList = new ObservableCollection<string>();
    
    public ObservableCollection<string> myList { get { return _myList; } }
    

    【讨论】:

    • 是的,我显然是新手。谢谢。
    【解决方案2】:

    试试这个方法:

    public Window1()
    {
        InitializeComponent();
    
        myList.Add("test1");
        myList.Add("test2");
    
        this.DataContext = myList;
    }
    

    然后在 XAML 中:

    <ListBox Name="MyListBox" ItemsSource="{Binding}"/>
    

    【讨论】:

      猜你喜欢
      • 2018-08-13
      • 1970-01-01
      • 2011-05-07
      • 1970-01-01
      • 2011-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多