ObservableCollection->列表框

发布于 2024-08-09 20:47:33 字数 796 浏览 3 评论 0原文

我知道这个问题已经被多次以不同的方式询问过,但我就是不明白。为什么我在列表框中看不到我的测试字符串?

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

I know this has been asked different ways several times, but I'm just not getting it. Why don't I see my test strings in the listbox?

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

春花秋月 2024-08-16 20:47:33

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

private ObservableCollection<string> _myList = new ObservableCollection<string>();

public ObservableCollection<string> myList { get { return _myList; } }

Because your "myList" is a field. WPF binding only works with properties. Change your list's declaration to:

private ObservableCollection<string> _myList = new ObservableCollection<string>();

public ObservableCollection<string> myList { get { return _myList; } }
情深已缘浅 2024-08-16 20:47:33

尝试这样:

public Window1()
{
    InitializeComponent();

    myList.Add("test1");
    myList.Add("test2");

    this.DataContext = myList;
}

然后在 XAML 中:

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

Try it this way:

public Window1()
{
    InitializeComponent();

    myList.Add("test1");
    myList.Add("test2");

    this.DataContext = myList;
}

and then in XAML:

<ListBox Name="MyListBox" ItemsSource="{Binding}"/>
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文