gpt4 book ai didi

c# - WPF 新手 - 在 XAML 中设置 ItemsSource 似乎不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 19:33:40 24 4
gpt4 key购买 nike

我是 WPF 的新手,正在尝试弄清楚所有这些数据绑定(bind)的东西。当我在我的代码中执行以下操作时,我的 ComboBox 在我运行我的应用程序时被填充:

public NewForm()
{
InitializeComponent();
Product.ItemsSource = Products;
}

public List<string> Products
{
get { return _productsComponents.Keys.ToList(); }
}

但是,在我的 XAML 中,当我有以下内容时,当我运行我的应用程序时,ComboBox 中没有内容:

<ComboBox Height="23" HorizontalAlignment="Left" Margin="138,116,0,0"
Name="Product" VerticalAlignment="Top" Width="120"
ItemsSource="{Binding Path=Products}"/>

我引用的东西不正确吗? This tutorial很有帮助,但他从来没有在 XAML 中设置 ItemsSource,总是在 C# 中。

最佳答案

默认情况下,您实际上不是绑定(bind)到表单本身,而是绑定(bind)到分配给 DataContext 属性的对象。这有助于使用 View 模型来管理代码隐藏文件之外的所有数据。

您可以将表单本身分配给构造函数中的 DataContext 属性

DataContext = this;

您还可以通过多种方式中的任何一种绑定(bind)到表单。这是一个:

<Window x:Name="thisWindow" …
<ComboBox ItemsSource="{Binding Path=Products, ElementName=thisWindow}"…

我不认为 Products 需要是 DependencyProperty 在这里,但不要引用我的话,只要由于集合不会更改,您无需担心更新通知。

关于c# - WPF 新手 - 在 XAML 中设置 ItemsSource 似乎不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3372363/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com