【问题标题】:WPF - Observable collection binding errorWPF - 可观察的集合绑定错误
【发布时间】:2013-05-03 18:35:46
【问题描述】:

我正在尝试创建一个将 ObservableCollection 连接到 ListBox 的简单程序。我写道:

public ObservableCollection<int> Values { get; set; }

public MainWindow()
{
    InitializeComponent();
    Values = new ObservableCollection<int>();
    Values.Add(1);
    DataContext = this;
}

然后我被创建按钮并写道:

public Button1_Clicke(object sender, RoutedEventArgs e)
{
    Values.Add(2);
}

XMAL:

<ListBox x:Name="list" ItemsSource="{Binding Path=Values}"/>

当窗口打开时,我可以看到“1”的值。 但是当我单击按钮时,列表框会更新项目。怎么了?

【问题讨论】:

  • 应该可以。使用 Values.Count 向 click 事件添加消息框
  • 尺寸变大了,但列表框没有更新
  • 如果您需要帮助,您需要发布所有代码。这应该有效。

标签: c# wpf data-binding observablecollection


【解决方案1】:

你可以试试这个:

<ListBox x:Name="list" ItemsSource="{Binding Path=Values}"/>

编辑: 我做了一个简单的示例如下:

<Window x:Class="WpfApplication1.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">
    <StackPanel>

        <ListBox x:Name="list" ItemsSource="{Binding Path=Values}"/>
        <Button Click="Button_Click" Content="Test"></Button>
    </StackPanel>

</Window>

代码隐藏 (Window1.xaml.cs)

using System.Collections.ObjectModel;

/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1 : Window
{
    public ObservableCollection<int> Values { get; set; }

    public Window1()
    {
        InitializeComponent();

        Values = new ObservableCollection<int>();
        Values.Add(1);
        DataContext = this;
    }

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        Values.Add(2);
    }
}

它按预期工作。因此,根据下面的 cmets,为什么不尝试删除所有转换器以确保其正确与否。

【讨论】:

  • 那么,你确定按钮点击调用了你已经在这里发布的正确事件吗?
  • 很奇怪,我无法重现您的问题。我运行您在此处发布的代码,它按预期工作。您应该发布整个 xaml 以找出一些东西。
  • 我在绑定中添加了虚拟转换器,但它根本没有调用。并且项目仍然插入到可观察的集合中。
  • 因此,如果单击按钮后值 '2' 没有出现在列表框中,这没有任何意义。
  • 你的环境怎么样?您使用的是哪个版本的VS?视窗版?和 Net 框架版本。
猜你喜欢
  • 2015-03-07
  • 1970-01-01
  • 2013-05-21
  • 2021-12-15
  • 2020-12-29
  • 2017-04-12
  • 1970-01-01
  • 1970-01-01
  • 2016-11-08
相关资源
最近更新 更多