WPF ComboBox绑定ItemsSource

勒克斯

我是WPF的初学者,尝试将ComboBox的项目绑定到ObservableCollection

我使用以下代码:

XAML

<Window x:Class="comboBinding2.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        DataContext="{Binding RelativeSource={RelativeSource Self}}"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <ComboBox x:Name="cmbTest" ItemsSource="{Binding Path=cmbContent}" Width="200" VerticalAlignment="Center" HorizontalAlignment="Center" />
    </Grid>
</Window>

C#

public MainWindow()
{
    cmbTest.ItemsSource = cmbContent;
    cmbContent.Add("test 1");
    cmbContent.Add("test 2");

    InitializeComponent();
}

public ObservableCollection<string> cmbContent { get; set; }

在尝试调试之前,我不会在此代码上遇到任何错误,它会引发错误:

TargetInvocationError

PresentationFramework.dll中发生了类型为'System.Reflection.TargetInvocationException'的未处理异常

有人可以告诉我我在做什么错吗?

蒙卡达

您当前的实现存在一些问题。如其他人所述,您的列表当前为NULL,并且DataContext未设置窗口的。

不过,我建议(尤其是因为您刚开始使用WPF)建议使用来学习以更“正确”的方式进行绑定MVVM

请参见下面的简化示例:

首先,你要设置DataContext你的Window这将允许XAML“查看”中的属性ViewModel

/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
        DataContext = new ViewModel();
    }
}

接下来,只需设置一个ViewModel包含所有Window's绑定元素的类,例如:

public class ViewModel
{
    public ObservableCollection<string> CmbContent { get; private set; }

    public ViewModel()
    {
        CmbContent = new ObservableCollection<string>
        {
            "test 1", 
            "test 2"
        };
    }
}

最后,更新XAML,使绑定路径与集合匹配:

<Grid>
    <ComboBox Width="200"
          VerticalAlignment="Center"
          HorizontalAlignment="Center"
          x:Name="cmbTest"
          ItemsSource="{Binding CmbContent}" />
</Grid>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

WPF ComboBox:将SelectedItem设置为不在ItemsSource->绑定奇数中的项目

来自分类Dev

WPF ComboBox自动绑定

来自分类Dev

WPF ComboBox Mvvm绑定

来自分类Dev

XAML中的WPF ListView绑定ItemsSource

来自分类Dev

如何在WPF中将ItemsSource与ObservableCollection绑定

来自分类Dev

WPF DataGrid 绑定到 ItemsSource 项属性

来自分类Dev

使用ComboBox的WPF数据绑定

来自分类Dev

使用ComboBox的WPF数据绑定

来自分类Dev

WPF枚举绑定到ComboBox

来自分类Dev

WPF ComboBox与对象的绑定问题

来自分类Dev

WPF动态删除ComboBox绑定

来自分类Dev

使用 ComboBox 绑定 DataGrid(PropertyChanged、WPF、绑定)

来自分类Dev

ItemsSource更新后,WPF ComboBox设置为null

来自分类Dev

WPF列表框将ItemsSource与MVVM-light绑定

来自分类Dev

使用WPF在TextBlock中对ItemsControl的ItemsSource的绑定计数

来自分类Dev

WPF将ComboBox绑定到我的ViewModel

来自分类Dev

WPF:将List <class>绑定到ComboBox

来自分类Dev

WPF ComboBox SelectedItem绑定到枚举时

来自分类Dev

WPF:将ComboBox绑定到int值

来自分类Dev

C#WPF MVVM ComboBox绑定

来自分类Dev

WPF:将List <class>绑定到ComboBox

来自分类Dev

WPF-防止ComboBox重新绑定

来自分类Dev

在WPF中将ComboBox绑定到XML

来自分类Dev

WPF ComboBox绑定与转换器

来自分类Dev

WPF ComboBox绑定到List <string>

来自分类Dev

将UWP ComboBox ItemsSource绑定到Enum

来自分类Dev

WPF ComboBox ItemTemplate绑定到字符串集合

来自分类Dev

将枚举绑定到WPF控件(如Combobox,TabHeader等)的方法

来自分类Dev

无法将枚举绑定到combobox wpf mvvm